L'accès Fragment de Vue de l'Activité de l'onCreate

Je suis en train de faire ma première application pour Android, et j'ai un Fragment qui s'ajoute à mon Activity dans le Activity's onCreate() méthode. Le problème, je suis confronté est que je suis incapable de trouver des points de vue contenus dans le Fragment de la Activity's onCreate() méthode.

Autres threads ont suggéré que c'est parce que le Fragment n'a pas encore été gonflés, alors findViewById() renvoie la valeur null pour toutes les opinions contenues dans le Fragment.

Voici ce que je veux dire:

Activité:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    System.out.println("activity onCreate");
    setContentView(R.layout.activity_main);

    if (savedInstanceState != null) {
        return;
    }

    initialiseUI(); //Fragment added to Activity

    System.out.println("end of activity onCreate");
}

Fragment:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) {
System.out.println("fragment onCreateView");
    return inflater.inflate(R.layout.event_log, container, false);
}

Ce imprime les résultats:

activité onCreate
fin de l'activité onCreate
fragment onCreateView

En raison de la présente ordonnance, toute tentative d'accès le point de vue de la Fragment dans le Activity's onCreate() méthode (à l'aide de findViewById()) produit un NullPointerException, comme le Fragment's onCreateView() seulement est appelé APRÈS la fin de la Activity's onCreate().

À l'aide de la FragmentManger's executePendingTransactions() après l'ajout de la Fragment ne l'aide pas.

En gros, j'ai été forcé de mettre le code de problème dans le Activity's onStart() méthode au lieu de onCreate(), comme onStart() qui se passe APRÈS la Fragment's onCreateView().

Quelqu'un ce qu'est la norme de la pratique est ici, ou comment je peux faire mon Fragment-Vue-l'accès à code de travail au sein de la Activity's onCreate() méthode?

  • Pourquoi voulez-vous accéder à Fragment's vues dans Activity's onCreate() méthode? Quelque chose est incorrect avec votre conception.
  • Plus précisément, après l'ajout d'un Fragment à l'Activité de l'onCreate() la méthode, je veux modifier le texte d'un TextView contenues dans le Fragment, et ajouter des éléments à un Spinner. Ce qui pourrait être mal avec mon design?
  • Que la mise à jour de votre fragment de la mise en Fragment's onCreateView() méthode. Voir ma réponse.
InformationsquelleAutor Dan | 2012-08-25