0

我是 android 新手,尝试使用 Activity 将包发送到 Fragment

Bundle 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();

请帮我追踪这个异常

4

4 回答 4

1

对不起,如果我的回答对你来说迟到了..

请创建片段的第一个实例然后捆绑..并确保对片段执行事务以获取片段中的参数。

FragmentTab1 fTab1 = new FragmentTab1();
Bundle args = new Bundle();
args.putString("name", "XXXXXXX");
fTab1.setArguments(args);

希望这将解决空指针异常,您可以获取片段的 onStart 或 OnCreateView 方法的参数..

亲切的问候,

于 2014-03-19T11:28:39.210 回答
1

尝试这个

Bundle bundle = new Bundle();
bundle.putString("edttext", "From Activity");
// set Fragmentclass Arguments
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);

在片段任务中

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    String strtext = getArguments().getString("edttext");    
    return inflater.inflate(R.layout.fragment, container, false);
}
于 2014-08-14T07:57:36.757 回答
0

在您的片段中创建一个静态方法,然后将 Bundle 参数传递给该方法,这是我迄今为止发现的最简单的方法。

下面将是您片段中方法的格式

Bundle arg;
public static void setArguments(Bundle Args)
{


    arg=Args;

}

并从您要设置参数的位置以这种方式调用

YourFragment.setArguments(Args);

希望你会发现这个答案有帮助

于 2013-08-23T08:53:05.870 回答
0

我在使用 android studio 时也发生了同样的事情。但是,有时没有将更新的代码添加到 apk 是 android studio 的错误。所以如果你运行 build->Clean 然后运行应用程序会更好。

于 2016-09-08T12:46:38.730 回答