Java 使用bundle传递数据时,从具有不同活动的片段中获取错误
我正在使用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
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");
}
}