Neuestes Update - 25. April 2019
Neue Version androidx.activity ver. 1.0.0-alpha07 bringt einige Änderungen mit sich
Weitere Erklärungen im offiziellen Android-Handbuch: Benutzerdefinierte Rückennavigation
Beispiel:
public class MyFragment extends Fragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OnBackPressedCallback callback = new OnBackPressedCallback(true ) {
@Override
public void handleOnBackPressed() {
}
};
requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);
}
...
}
Alte Updates
UPD: 3. April 2019
Jetzt ist es vereinfacht. Mehr Infos hier
Beispiel:
requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), this);
@Override
public boolean handleOnBackPressed() {
return true;
}
Veraltet (seit Version 1.0.0-alpha06 3. April 2019):
Da dies kann nur implementiert werden JetPack Implementierung OnBackPressedCallback
in Ihrem Fragment und an Aktivität hinzufügen:
getActivity().addOnBackPressedCallback(getViewLifecycleOwner(),this);
Ihr Fragment sollte folgendermaßen aussehen:
public MyFragment extends Fragment implements OnBackPressedCallback {
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getActivity().addOnBackPressedCallback(getViewLifecycleOwner(),this);
}
@Override
public boolean handleOnBackPressed() {
return true;
}
@Override
public void onDestroyView() {
super.onDestroyView();
getActivity().removeOnBackPressedCallback(this);
}
}
UPD:
Ihre Aktivität sollte erweitert werden und AppCompatActivity
oder FragmentActivity
in der Gradle-Datei:
implementation 'androidx.appcompat:appcompat:{lastVersion}'