Java 使用bundle传递数据时,从具有不同活动的片段中获取错误

Java 使用bundle传递数据时,从具有不同活动的片段中获取错误,java,android,android-fragments,nullpointerexception,Java,Android,Android Fragments,Nullpointerexception,我正在使用Bundle将数据从我的MainActivity传递到Fragment,但它用JAVA.NULLPOINTER.EXCEPTION提示。当第二个活动中的列表碎片2中的IgetArguments()`出现错误 main活动 list_fragment2 fragment = new list_fragment2(); Bundle b = new Bundle(); b.putString("test","text"); fragment.setArguments(b); Toast.m

我正在使用Bundle将数据从我的
MainActivity
传递到
Fragment
,但它用JAVA.NULLPOINTER.EXCEPTION
提示。当第二个活动中的列表碎片2中的I
getArguments()`出现错误

main活动

list_fragment2 fragment = new list_fragment2();
Bundle b = new Bundle();
b.putString("test","text");
fragment.setArguments(b);
Toast.makeText(this, "" + b, Toast.LENGTH_SHORT).show();
列出片段2

String name = getArguments().getString("test");
ntab2.setText(name);
Logcat

01-02 07:19:52.549 15797-15797/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                      java.lang.NullPointerException
                  at net.simplifiedcoding.androidtablayout.Tab2.list_fragment2.onCreateView(list_fragment2.java:62)
                  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
                  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
                  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
                  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
                  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613)
                  at android.support.v4.app.Fragment.performStart(Fragment.java:1983)
                  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1102)
                  at android.support.v4.app.FragmentManagerImpl.performPendingDeferredStart(FragmentManager.java:926)
                  at android.support.v4.app.FragmentManagerImpl.startPendingDeferredFragments(FragmentManager.java:1272)
                  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1630)
                  at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)
                  at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
                  at android.support.v4.view.ViewPager.populate(ViewPager.java:1106)
                  at android.support.v4.view.ViewPager.populate(ViewPager.java:952)
                  at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1474)

下面是一个解决方案,您必须在列表\u fragment2中更改一点代码 首先,你必须做一个包,然后得到像绳子一样的东西

Bundle bundle = getArguments();
    if (bundle != null) {
    String name = bundle.getString("test");
    ntab2.setText(name);
  }

问题解决。

更改这行代码

字符串名称=getArguments().getString(“测试”)

字符串名称=this.getArguments().getString(“测试”)


它会起作用。

在你的第二个片段上,像这样使用

在列表中调用getArguments()\u fragment2的onCreateView()方法:


在哪一行出现了问题?但我得到了为bundleString name=getArguments().getString(“测试”)创建一个值;第一个片段:Bundle=新Bundle();bundle.putInt(键、值);fragment.setArguments(bundle);第二个片段:Bundle=this.getArguments();如果(bundle!=null){int i=bundle.getInt(key,defaulValue);}谢谢,我以前尝试过这个,但是我的第二个片段仍然返回值null谢谢,但是我仍然无法从Activity中获取值谢谢,我仍然得到相同的错误谢谢,它对我不起作用你的片段名Tab2?然后更改为
Tab2 fragment=new Tab2()否,列表_fragment2中的我的bundle仍然返回空值
 public View onCreateView(LayoutInflater inflater,ViewGroup containerObject,
         Bundle savedInstanceState){
         //here is your arguments
         Bundle bundle=getArguments(); 

        //your string
        String test=bundle.getString("test");   
     }
}