[JAVA] Comment effectuer un processus spécifique lorsque le bouton de retour est enfoncé dans le fragment Android

Manipulez le bouton retour (touche retour) du terminal côté Fragment et effectuez un traitement spécifique!

Au départ, je voulais contrôler le bouton de retour côté Fragment, mais comme il est nécessaire de remplacer onBackPressed () dans Activity et de le contrôler, j'ai pu implémenter et opérer comme suit.

Le flux approximatif est le suivant

Tout d'abord, ajoutez ce qui suit à l'activité d'origine

    @Override
    public void onBackPressed() {
        Fragment fragment = getSupportFragmentManager().findFragmentByTag("handlingBackPressed");
        if (fragment instanceof OnBackKeyPressedListener) {
            ((OnBackKeyPressedListener) fragment).onBackPressed();
        }
        super.onBackPressed();
    }

Donnez à findFragmentByTag un nom approprié. Ici, "manipuler BackPressed" est utilisé.

Puis créez l'interface OnBackKeyPressedListener.java

public interface OnBackKeyPressedListener {
    void onBackPressed();
}

Ensuite, ajoutez la balise "handlingBackPressed" lors de la génération d'un fragment dont vous souhaitez contrôler le bouton de retour.

fragment = new HogeFragment();
manager.beginTransaction().replace(R.id.main_area_layout, fragment, "handlingBackPressed").addToBackStack(null).commit();

Hériter de l'interface créée par HogeFragment et ajouter un processus spécifique dans onBackPressed ()

public class FavoriteItemListFragment implements OnBackKeyPressedListener {
・ ・ ・ ・
    @Override
    public void onBackPressed() {
        //Gère les événements clés et décrit le traitement nécessaire.
        //Par exemple, affichez le texte dans la zone de la barre d'outils contrôlée par Activité.
        TextView leftToolbarText = mContext.findViewById(R.id.tool_bar_left_text);
        leftToolbarText.setVisibility(View.VISIBLE);
    }

c'est tout!

Recommended Posts

Comment effectuer un processus spécifique lorsque le bouton de retour est enfoncé dans le fragment Android
[Android] Contrôlez facilement l'événement lorsque vous appuyez sur le bouton Retour dans Fragment
Comment afficher la valeur lorsqu'il y a un tableau dans le tableau
Comment référencer une colonne lors du remplacement de la méthode de nom de colonne dans ActiveRecord
Comment définir quand "Le constructeur Empty () n'est pas visible" se produit dans junit
Jusqu'où est la bonne réponse pour diviser le processus?
[Android / Java] Configurer un bouton pour revenir à Fragment
[Rails] Comment charger JavaScript dans une vue spécifique
Comment changer le processus en fonction de la liste appuyée lorsqu'il y a plusieurs ListViews
Comment faire une capture d'écran avec l'émulateur Android Studio
Comment régler chrony lorsque le temps change dans CentOS7
Comment créer une partie d'espace réservé à utiliser dans la clause IN
[Android] Comment vérifier si le service de développement Google Play est installé lors du démarrage de l'application
Comment résoudre le problème lorsque la valeur n'est pas envoyée lorsque le formulaire est désactivé dans les rails et envoyé
Comment ajouter les mêmes index dans un tableau imbriqué
[jOOQ] Comment utiliser CASE WHEN dans la clause WHERE / AND / OR
Comment stocker les informations saisies dans la zone de texte dans une variable de la méthode
Comment identifier le chemin sur lequel il est facile de se tromper
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
[Android] Je souhaite obtenir l'auditeur à partir du bouton de ListView
[Android] Comment créer un fragment de dialogue
Comment résoudre le problème que le bean n'est pas traité correctement lorsqu'il est imbriqué dans Spring Batch
Comment définir l'image pour dessiner à gauche / à droite du bouton à l'aide de la police d'icône (Iconics)
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Modifier le traitement lorsque le bouton de RecyclerView est enfoncé pour chaque liste
Mémo: [Java] Si un fichier se trouve dans le répertoire surveillé, traitez-le.
Comment obtenir la date actuelle sous forme de chaîne au format aaaaMMjj
[Docker] Comment créer lorsque le code source est monté en liaison sur le conteneur
[Petite histoire Java] Surveiller lorsqu'une valeur est ajoutée à la liste
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
Comment trouver le nombre total de pages lors de la pagination en Java
Comment contraindre l'action de la destination de transition lorsqu'elle n'est pas connectée
Comment changer la valeur d'une variable à un point d'arrêt dans intelliJ
Comment passer un proxy lors du lancement de REST avec SSL en Java
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
Que faire si le processus Tomcat reste lorsque vous arrêtez Tomcat dans Eclipse
Développement Android, comment vérifier null dans la valeur de l'objet JSON
Est-il possible de mettre la bibliothèque (aar) dans la bibliothèque Android (aar) et de l'utiliser?
Comment insérer une vidéo dans Rails
Êtes-vous toujours épuisé par la recherche d'exemples de vidéos? Un bouton pour envoyer des vidéos FANZA à Slack lorsque vous appuyez dessus.
Comment résoudre l'erreur'ActionView :: Template :: Error (L'actif "application.css" n'est pas présent dans le pipeline d'actifs. '"Lors de la précompilation d'actifs Rails
Android Donner facilement une «pression» sur un bouton
Comment obtenir la date avec Java
[Note] [Débutant] Comment écrire lors de la modification de la valeur d'un élément de tableau dans une phrase répétée de Ruby
Comment publier une bibliothèque dans jCenter
Lors de la réaffectation à un argument dans une méthode Ruby puis en appelant `super` → Celui réaffecté est utilisé
Comment utiliser ExpandableListView dans Android Studio
Comment rediriger vers http-> https lorsque SSL est activé dans l'environnement Rails × Heroku
Comment obtenir l'ID d'un utilisateur qui s'est authentifié avec Firebase dans Swift
Comment vérifier si une variable d'instance est définie dans une classe Ruby
Comment réparer un crash lors de la suppression de données de royaume dans la liste de l'interface utilisateur Swift
Androd: Que faire à propos de "Le Royaume est déjà dans une transaction d'écriture dans"
Comment créer une combinaison unique de données dans la table intermédiaire des rails
Solution lorsque la connexion à la base de données n'est pas possible avec un nouveau conteneur car le port est affecté au conteneur docker existant