――Lorsque je créais une certaine application, je voulais mettre en place un processus pour désactiver le bouton retour, donc un mémorandum
MyActivity.java
@Override
public void onBackPressed() {
//Insérez le traitement lorsque vous appuyez sur le bouton retour
}
--Bien que vous puissiez transmettre la valeur via l'interface, il est difficile de spécifier l'ID et la balise. .. .. --Je cherchais un moyen plus simple, et il semble qu'il ne puisse être implémenté que dans Fragment en utilisant OnBackPressedDispatcher. (C'était le plus rapide quand j'ai regardé le document depuis le début ...)
MyFragment.java
public class MyFragment extends Fragment {
private OnBackPressedCallback mBackButtonCallback;
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
public void onCreate(Bundle savedInstanceState) {
mBackButtonCallback = new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
//Insérez le traitement lorsque vous appuyez sur le bouton retour
}
};
requireActivity().getOnBackPressedDispatcher().addCallback(this, mBackButtonCallback);
}
@Override
public void onDestroy(){
mBackButtonCallback.remove();
super.onDestroy();
}
}
C'est très facile, mais lorsque vous implémentez cela, si vous ne libérez pas explicitement le rappel par remove () avec onDestroy etc., le processus sera exécuté dans un autre Fragment etc. «Cela ne signifie pas que vous le publierez sans autorisation, donc je pense que vous devez faire attention à ce point.
Recommended Posts