diese Schritte Betrachten hinzufügen Navigation auf benutzerdefinierte Symbolleiste zeigen:
Von Activity
1 hält Fragment
A, Sie wollen direkt zu laden Fragment
B in Activity
2.
Nun denke ich zuerst, dann drücken Sie eine Taste in Fragment A
, können Sie direkt zu Activity B
gehen.
Dann heißt es, man einfach Fragment B
laden können, sobald Sie in Activity
2.
ankommen Da Sie mit zurück Navigation beschäftigen (? Ich glaube, Sie meinen die upNavigation
), können Sie die folgende außer Kraft setzen:
klar
Aber Vorsicht, denn wenn man ein genaues Fragment in Aktivität laden muß 2, müssen Sie wissen, irgendwie:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, Activity2.class);
intent.putExtra("frag", "fragmentB");
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Wie Sie sehen können, wenn Sie in der Symbolleiste auf den zurück-Pfeil klicken, wir übergeben ein Wert durch unsere Absicht zu identifizieren, welches Fragment wir laden wollen.
nächste in Ihrem Activity2
, einfach die intent extra
bekommen und einen Schalter tun oder ein if statement
:
@Override
public void onResume(){
super.onResume();
Intent intent = getIntent();
String frag = intent.getExtras().getString("frag");
switch(frag){
case "fragmentB":
//here you can set Fragment B to your activity as usual;
fragmentManager.beginTransaction().replace(R.id.container_body, new FragmentB()).commit();
break;
}
}
Von hier aus sollten Sie Ihr Fragment B zeigen in Aktivität haben 2.
Jetzt können Sie In Aktivität 2 können Sie entscheiden, wohin Sie gehen, wenn ein Benutzer auf den Pfeil nach Hause klickt!
Ich hoffe, das hilft Ihnen, eine Idee zu bekommen.
Hinweis: Ich habe über den Interface-Ansatz nachgedacht und festgestellt, dass dies nicht notwendig ist, da dies mit diesem Ansatz einfach durchgeführt werden kann!
Nehmen die Fragmente A und B bei ihren Aktivitäten den gesamten Bildschirm ein? Und sind das nur Fragmente, die in diesen Aktivitäten gezeigt werden? – Marat
Haben Sie versucht, Code? –
Haben Sie versucht, Ereignisse oder Schnittstelle/ – Eenvincible