【发布时间】:2016-07-07 12:17:12
【问题描述】:
如何将数据从活动传递到片段。它有据可查,但不幸的是没有解决方案适合我。
我想将数据从我的主要活动中的内部 AsyncTask 类发送到另一个片段。
最受欢迎的答案是使用 Bundle,所以我尝试了以下方法:
异步任务:
Bundle bundle = new Bundle();
bundle.putString("test", "From AsyncTask");
MyFragmentClass fragobj = new MyFragmentClass();
fragobj.setArguments(bundle);
片段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_one, container, false);
String value = getArguments().getString("test");
Log.i("valueTest", value);
return rootView;
}
当我收到以下内容时,字符串没有被传递给片段:
“java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'java.lang.String android.os.Bundle.getString(java.lang.String)'”
我将不胜感激。
【问题讨论】:
-
你的 AsyncTask 代码是什么?
-
确保您没有在
FragmentTransaction中添加不同的MyFragmentClass实例。此外,您共享的代码本身会出错。您还没有在这里关闭双引号:bundle.putString("test", "From AsyncTask); -
感谢您的建议 Cgx 解决方案有效
标签: android android-fragments android-asynctask android-bundle