2016-03-23 16 views
1

私は3以上のネストされた断片を作成するために、私の親フラグメントでFragmentTabHostを使用しています:親フラグメントからネストされたフラグメントのビューを作成するにはどうすればいいですか?

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のためのビューの作成を開始します入れ子にされた断片。問題は、最初のフラグメントのみが作成されるため、常にnullポインタ例外が発生するため、fragBおよびfragCのビューにアクセスできないことです。

私の質問は:私の親フラグメントのAsyncTaskで3つのフラグメントのすべてのビューの作成を開始できますか?

答えて

0

これらのビューにはアクセスしないでください。親フラグメントにデータを格納し、フラグメントを作成するときにインターフェイスを使用してそれらのデータを取得します。

0

フラグメントは、そのタブに関連付けられた後に作成されます。もう一度タブに戻ったときに破棄され、再作成されます。親フラグメントからUIを更新するには、子フラグメントで単純なパブリックメソッドを使用する必要があります。または、「オブザーバー」パターンを使用してUIを更新することもできます。

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

+0

私はそれがどのように動作するかを知っているが、これらのタブをユーザーがクリックする前に、私の親フラグメントでこれらのフラグメントを関連付けることが可能である場合、私は求めています。私は自分の編集したFragmentTabHostを使用しています。これはフラグメントを表示して非表示にし、再作成しません。 – Adam