我在我的父片段中使用FragmentTabHost创建了3个嵌套片段:
fragmentTabHost.addTab(fragmentTabHost.newTabSpec("fragA").setIndicator(getString(R.string.fragA)), FragmentA.class, null);
fragmentTabHost.addTab(fragmentTabHost.newTabSpec("fragB").setIndicator(getString(R.string.fragB)), FragmentB.class, null);
fragmentTabHost.addTab(fragmentTabHost.newTabSpec("fragC").setIndicator(getString(R.string.fragC)), FragmentC.class, null);
然后我在我的父片段中运行AsyncTask以从服务器和onPostExecute获取变量我想开始为所有3个嵌套片段创建视图。问题是我总是得到一个空指针异常,因为只创建了第一个片段,所以我无法访问fragB和fragC中的视图。
我的问题是:是否可以在我的父片段的AsyncTask中为所有3个片段启动创建视图?
答案 0 :(得分:0)
您不应该访问这些视图。将数据存储在父片段中,并使用接口在创建片段时获取这些数据。
答案 1 :(得分:0)
一旦您在与之关联的选项卡上,就会创建片段。当您再次返回选项卡时,它会破坏并重新创建。您应该在子片段中使用简单的公共方法来更新父片段中的UI。或者您可以使用“观察者”模式更新UI。
http://developer.android.com/tools/data-binding/guide.html#observable_objects