【问题标题】:NullPointer Exception while passing Bundle from Activity to Fragment将 Bundle 从 Activity 传递到 Fragment 时出现 NullPointer 异常
【发布时间】:2016-09-08 20:46:38
【问题描述】:

我是 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;
  }

Bundle bundle = this.getArguments();获得null pointer exception

请帮我追踪这个异常

【问题讨论】:

标签: android android-fragments


【解决方案1】:

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

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

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

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

亲切的问候,

【讨论】:

    【解决方案2】:

    试试这个

    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);
    }
    

    【讨论】:

      【解决方案3】:

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

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

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

      从你想设置参数的地方以这种方式调用

      YourFragment.setArguments(Args);
      

      希望这个答案对您有所帮助

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多