Meine Lösung ist vielleicht nicht elegant, aber irgendwie effektiv.
Zuerst sollten Sie in die Absicht das Tag des Fragments eingeben, das die neue Aktivität startet. Nachdem Sie die Aktivität gestartet haben, rufen Sie in der MainActivity finish();
auf.
In der neuen Aktivität überschreiben Sie die onOptionsItemSelected
Methode, so dass es eine neue Absicht erstellt und die MainActivity startet. Natürlich werden Sie das Tag des Fragments erneut in der Absicht speichern.
// Handles back button in ActionBar
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.putExtra("lastFragment",value);
startActivity(intent);
finish();
break;
}
return true;
}
Schließlich sollte die MainActivity überprüfen, ob die Absicht null ist. Wenn nicht, holen Sie sich das Tag des Fragments und laden Sie es.
Das Endergebnis ist, dass der Benutzer zu dem Fragment aufgefordert wird, das die neue Aktivität aufgerufen hat. Obwohl ich mir sicher bin, dass es bessere Möglichkeiten gibt, dies zu tun.