我是android的新手,尝试使用
将一个包从一个Activity发送到FragmentBundle args = new Bundle();
args.putString("name", "XXXXXXX");
FragmentTab1 fTab1 = new FragmentTab1();
fTab1.setArguments(args);
并在FragmentTab1 onCreate方法中如下:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Get the view from fragmenttab1.xml
View view = inflater.inflate(R.layout.fragmenttab1, container, false);
Bundle bundle = this.getArguments();
if (bundle != null) {
name = bundle.getString("name");
}
TextView nameView = (TextView) view.findViewById(R.id.dinesh);
nameView.setText(name);
return view;
}
在null pointer exception
Bundle bundle = this.getArguments();
请帮我跟踪此异常
答案 0 :(得分:1)
对不起,如果我的回答很晚......
请创建片段的第一个实例然后捆绑..并确保在片段上执行事务以获取片段中的参数。
FragmentTab1 fTab1 = new FragmentTab1();
Bundle args = new Bundle();
args.putString("name", "XXXXXXX");
fTab1.setArguments(args);
希望这会解决空指针异常,你可以在片段的onStart或OnCreateView方法上得到参数。
亲切的问候,
答案 1 :(得分:1)
试试这个
Bundle bundle = new Bundle();
bundle.putString("edttext", "From Activity");
// set Fragmentclass Arguments
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);
并在Fragment Task
中@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String strtext = getArguments().getString("edttext");
return inflater.inflate(R.layout.fragment, container, false);
}
答案 2 :(得分:0)
在片段中创建一个静态方法,然后将Bundle参数传递给该方法,这是迄今为止我找到的最简单的方法。
下面的将是片段中方法的格式
Bundle arg;
public static void setArguments(Bundle Args)
{
arg=Args;
}
并且您想要以这种方式设置Arguments的地方
YourFragment.setArguments(Args);
希望您会发现此答案有用
答案 3 :(得分:0)
在使用android studio时,我发生了同样的事情。然而,这是android studio的一个错误,它有时不会向apk添加更新的代码。因此,如果运行build-> Clean然后运行应用程序会更好。