L'ajout d'un fragment à un dialogue
Je voudrais ajouter un fragment d'un dialogue (il peut être un DialogFragment ou boîte de Dialogue). Comment dois-je faire?
Voici mon DialogFragment:
public class MyDialogFragment extends DialogFragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
MyDialogFragment2 dialog = new MyDialogFragment2();
View v = inflater.inflate(R.layout.news_articles, container, false);
getActivity().getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, dialog).commit();
return v;
}
}
Voici news_article.xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Voici mon activité principale:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
MyDialogFragment dialog = new MyDialogFragment();
dialog.show(getSupportFragmentManager(), "asdf");
}
});
}
Mais quand je l'ai essayer j'obtiens:
No view found for id 0x7f070002 for fragment MyDialogFragment2
Je pense que c'est parce que le FragmentManager de l'Activité n'est pas celui que je dois ajouter, mais je ne trouve pas l'un des DialogFragment, où est-il?
getChildFragmentManager().beginTransaction()....
Merci, mais cela fonctionne à partir de l'API de 17 ans seulement, n'est-ce pas?
Avec le natif de fragments oui, car ils ont été introduits à partir de 4.2. Mais vous avez toujours la possibilité de les fragments de l'appui de compatibilité package qui fonctionne avec le même
getChildFragmentManager()
méthode.Oh... ne pouvais pas le trouver à cause d'une ancienne version v4... trouvé ceci: stackoverflow.com/questions/15805574/..., Merci!
OriginalL'auteur Kalisky | 2013-08-18
Vous devez vous connecter pour publier un commentaire.
La réponse (merci à @Luksprog) est à l'aide de la getChildFragmentManager au lieu de getActivity().getSupportFragmentManager
Elle n'était pas disponible pour moi, car j'ai eu à mettre à jour mon soutien-v4 pot, comme décrit ici: android.de soutien.v4.app.Fragment: undefined method getChildFragmentManager()
OriginalL'auteur Kalisky
Mise en page de la boîte de Dialogue R. layout.view_with_plus
Comment faire pour afficher la boîte de Dialogue
Le fragment dans class="com.util.moi.test.PlusOneFragment" est juste un PlusOneFragment généré par Android Studio.
OriginalL'auteur Tinashe