[JAVA] [Android] Contrôlez facilement l'événement lorsque vous appuyez sur le bouton Retour dans Fragment

Aperçu

――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 ...)

Méthode

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();
    }
}

Remarques

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

[Android] Contrôlez facilement l'événement lorsque vous appuyez sur le bouton Retour dans Fragment
Comment effectuer un processus spécifique lorsque le bouton de retour est enfoncé dans le fragment Android
Modifier le traitement lorsque le bouton de RecyclerView est enfoncé pour chaque liste
[Android / Java] Faire en sorte que le fragment hôte (appelant) rappelle l'événement depuis DialogFragment
Lorsque le projet n'est pas affiché dans eclipse
Comportement lorsque chacun est exécuté dans la plage inverse
Comment afficher la valeur lorsqu'il y a un tableau dans le tableau
[Android / Java] Comprendre le type de description dans les paramètres d'écoute (installation du bouton)
[Android] Je souhaite obtenir l'auditeur à partir du bouton de ListView