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