Je définir un ID pour mon fragment dans la mise en page xml:findFragmentById retourne toujours null
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/test_fragment"
...
Puis-je ajouter ce fragment dans la méthode onCreate de l'activité:
MyFragment myFragment = new MyFragment();
fragmentTransaction.add(R.id.fragment_container, myFragment);
fragmentTransaction.commit();
Ceci est tout travail bien. Remplacer des fragments et fonctionne également.
Plus tard, je suis en train de récupérer ce fragment par son ID dans l'une des méthodes de l'activité:
MyFragment myFragment = (MyFragment) getFragmentManager().findFragmentById(R.id.test_fragment);
Faire conduit ainsi myFragment être null
. Toujours.
Lorsque je tente de faire la même chose avec des balises au lieu d'ID que je peux récupérer le fragment par son étiquette sans aucun problème:
MyFragment myFragment = new MyFragment();
fragmentTransaction.add(R.id.fragment_container, myFragment, "testfragment");
fragmentTransaction.commit();
...
MyFragment myFragment = (MyFragment) getFragmentManager().findFragmentByTag("testfragment");
Pourquoi ne peut pas findFragmentById trouver le fragment, mais findFragmentByTag le fait? Est-ce que je manque quelque chose?
Essayez '(MyFragment) getFragmentManager(). FindFragmentById (R.id.container);' – offset