Ursprünglich wollte ich die Zurück-Schaltfläche auf der Fragment-Seite steuern, aber da es notwendig ist, onBackPressed () in Aktivität zu überschreiben und zu steuern, konnte ich Folgendes implementieren und betreiben.
Die grobe Strömung ist wie folgt
Fügen Sie der ursprünglichen Aktivität zunächst Folgendes hinzu
@Override
public void onBackPressed() {
Fragment fragment = getSupportFragmentManager().findFragmentByTag("handlingBackPressed");
if (fragment instanceof OnBackKeyPressedListener) {
((OnBackKeyPressedListener) fragment).onBackPressed();
}
super.onBackPressed();
}
Geben Sie findFragmentByTag einen geeigneten Namen. Hier wird es als "Umgang mit BackPressed" eingestellt.
Dann erstellen Sie die Schnittstelle OnBackKeyPressedListener.java
public interface OnBackKeyPressedListener {
void onBackPressed();
}
Fügen Sie als Nächstes das Tag "handleBackPressed" hinzu, wenn Sie ein Fragment generieren, das Sie über die Schaltfläche "Zurück" steuern möchten.
fragment = new HogeFragment();
manager.beginTransaction().replace(R.id.main_area_layout, fragment, "handlingBackPressed").addToBackStack(null).commit();
Erben Sie die von HogeFragment erstellte Schnittstelle und fügen Sie einen bestimmten Prozess in onBackPressed () hinzu.
public class FavoriteItemListFragment implements OnBackKeyPressedListener {
・ ・ ・ ・
@Override
public void onBackPressed() {
//Behandelt wichtige Ereignisse zurück und beschreibt die erforderliche Verarbeitung.
//Zeigen Sie beispielsweise den Text im Symbolleistenbereich an, der von Aktivität gesteuert wird.
TextView leftToolbarText = mContext.findViewById(R.id.tool_bar_left_text);
leftToolbarText.setVisibility(View.VISIBLE);
}
das ist alles!