1

J'utilise FragmentTabHost dans mon fragment de parent pour créer 3 fragments plus imbriqués:Comment créer une vue dans un fragment imbriqué à partir d'un fragment parent?

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); 

Puis je courais AsyncTask dans mon fragment parent pour obtenir des variables du serveur et dans onPostExecute Je veux commencer à créer des vues pour les 3 fragments imbriqués. Le problème est que je reçois toujours une exception de pointeur nul, car seul le premier fragment est créé, donc je ne peux pas accéder aux vues dans fragB et fragC.

Ma question est: est-il possible de commencer à créer des vues pour les 3 fragments dans AsyncTask de mon fragment parent?

Répondre

0

Vous ne devez pas accéder à ces vues. Stockez les données dans votre fragment parent et utilisez l'interface pour obtenir ces données lorsque le fragment est créé.

0

Les fragments seront créés une fois que vous serez sur l'onglet associé à celui-ci. Il détruit et recrée lorsque vous revenez à l'onglet. Vous devez utiliser une méthode publique simple dans le fragment enfant pour mettre à jour l'interface utilisateur du fragment parent. Ou vous pouvez utiliser le modèle "Observer" pour mettre à jour l'interface utilisateur.

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

+0

Je sais comment cela fonctionne, mais je me demande s'il est possible d'associer ces fragments dans mon fragment parent avant utilisateur clique sur ces onglets. J'utilise aussi mon propre FragmentTabHost édité qui montre et cache le fragment et ne les recrée pas. – Adam