如何从父片段创建嵌套片段中的视图?

时间:2016-03-23 10:54:23

标签: android android-fragments view fragment fragment-tab-host

我在我的父片段中使用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个片段启动创建视图?

2 个答案:

答案 0 :(得分:0)

您不应该访问这些视图。将数据存储在父片段中,并使用接口在创建片段时获取这些数据。

答案 1 :(得分:0)

一旦您在与之关联的选项卡上,就会创建片段。当您再次返回选项卡时,它会破坏并重新创建。您应该在子片段中使用简单的公共方法来更新父片段中的UI。或者您可以使用“观察者”模式更新UI。

http://developer.android.com/tools/data-binding/guide.html#observable_objects