2016-05-06 5 views
0

Ich habe zwei Fragmente. Für Beispiele wie Fragment A und Fragment B wird Fragment A gestartet, sobald die Aktivität beginnt. Nun gebe ich eine Eingabe ein, die Fragment B beginnen soll, es erreicht in Fragment B (führt seinen Code aus), aber es zeigt immer Fragment A. Was könnte möglicherweise schief gehen? Jede Hilfe wäre willkommen.Versuchen, Fragment zu ersetzen, aber es zeigt das gleiche Fragment weiter

homeScreenFragment = new HomeScreenFragment(); 
    getFragmentManager().beginTransaction().add(R.id.home_layout, homeScreenFragment, "Home Page"). 
      addToBackStack("Main Home Page").commit(); 

Ich betreiben dieses Fragment in MainActivity Klasse, jetzt nach dem Text in Suche eingeben, wird ein AsyncTask ausgeführt und auf seiner Fertigstellung Ich versuche, ein anderes Fragment zu laufen (wie im Code gezeigt).

+0

zeigen uns den Code! – petey

+0

Bitte geben Sie Code, wo Sie Logik geschrieben, um Fragment B –

+0

Ich habe einige Code-Schnipsel, bitte sehen Sie es sich an. – abhishek

Antwort

0

Das liegt daran, dass Sie jedes Mal ein Fragment hinzufügen (was ich in Ihrem Code verstanden habe). Also im Grunde, was Sie tun müssen, ist ein FragmentA Objekt und ein FragmentB Objekt in Ihrem Activity zu halten. Dann basierend darauf ersetzen Sie anstatt zu ergänzen. Wenn Sie hinzufügen, werden sie sich nur überlappen. Tun Sie dies:

getFragmentManager().beginTransaction().replace(R.id.home_layout, homeScreenFragment, "Home Page").addToBackStack("Main Home Page").commit(); 

d

Verwandte Themen