[JAVA] À propos de la synchronisation des appels et des arguments de la méthode addToBackStack

J'ai commencé à développer des applications Android l'autre jour, et tout en étudiant en regardant le texte, J'avais une question sur la façon d'utiliser la méthode addToBackStack, je vais donc l'écrire.

Au fur et à mesure du fonctionnement de l'application, lorsque la liste d'éléments est sélectionnée, l'écran passe à l'écran de détails de l'élément sélectionné, Lorsque vous appuyez sur le bouton Retour, vous revenez à la liste.

Utilisez la méthode addToBackStack pour enregistrer l'état de la destination de retour. L'utilisation de addToBackStack décrite dans le texte est la suivante.

//Remplacer la liste en détail
fragmentTransaction.replace(R.id.fragment1,myFragment2);

//Enregistrer la transaction d'origine pour traitement lorsque vous appuyez sur le bouton de retour
fragmentTransaction.addToBackStack(null);

Les deux points suivants m'ont fait me demander quand j'ai vu ce code.

  1. Moment de l'appel de méthode
  2. Arguments de méthode

Le contenu de l'enquête sur les deux points ci-dessus est résumé ci-dessous.

1. Moment de l'appel de méthode

En regardant le code ci-dessus, Après avoir remplacé le fragment par la méthode fragmentTransaction.replace L'état est enregistré par la méthode fragmentTransaction.addToBackStack.

La question ici est La question est que si vous enregistrez après l'échange, vous ne pourrez peut-être pas enregistrer l'état de la destination de retour. En d'autres termes Remplacement du fragment ⇒ enregistrer ne pas, Enregistrer ⇒ Remplacer le fragment J'ai pensé que ça devrait l'être.

Donc, si vous regardez la description de addToBackStack dans les développeurs Android,

Add this transaction to the back stack. This means that the transaction will be remembered after it is committed, and will reverse its operation when later popped off the stack.

À peu près traduit, Enregistrez la transaction dans la pile. Il est enregistré sur la pile après sa validation. Il sera restauré lorsqu'il sera sorti de la pile.

Malheureusement, je n'ai pas eu la réponse. Après cela, j'ai cherché des blogs, etc., mais je n'ai pas pu obtenir de réponse claire. Après cela, lorsque je faisais des recherches sur la modification de la disposition de l'écran sur les tablettes et les smartphones, J'ai trouvé la réponse. Sur la page de description des fragments (https://developer.android.com/guide/components/fragments.html?hl=ja) J'ai trouvé la description suivante.

Si vous apportez plusieurs modifications à une transaction (comme add () ou remove ()) et appelez addToBackStack (), toutes les modifications appliquées avant d'appeler commit () sont placées dans la backstack en une seule transaction. Une fois ajouté, sélectionnez le bouton Retour et tout reviendra en même temps.

En d'autres termes, la méthode addToBackStack enregistre les différences. Si vous souhaitez enregistrer la différence, remplacez Fragment ⇒ Save.

2. Arguments de méthode

Il s'agit simplement de la question: "Que signifie avoir un argument NULL?"

Cette question est expliquée par Android-Note (http://android-note.open-memo.net/sub/fragment__fragment_stack.html) Il y avait la description suivante dans.

Si vous n'avez pas plusieurs fragments à enregistrer sur la pile et que vous ne souhaitez enregistrer que le fragment actuel, passez null comme suit:

Je vois.

c'est tout.

lien github

Dépôt https://github.com/tagfa/MyGUIFragmentDynamic02 Où utiliser la méthode addToBackStack https://github.com/tagfa/MyGUIFragmentDynamic02/blob/master/app/src/main/java/com/example/tag/myguifragmentdynamic02/MainActivity.java

Recommended Posts

À propos de la synchronisation des appels et des arguments de la méthode addToBackStack
[Ruby] Questions et vérification du nombre d'arguments de méthode
À propos de Biocontainers fastqc et Java
À propos du rôle de la méthode initialize
À propos de removeAll et de retentionAll de ArrayList
Méthode de surcharge avec arguments Int et Integer
À propos du fonctionnement de next () et nextLine ()
Pensez à la combinaison de Servlet et Ajax
[Ruby] Mots clés avec mots clés et valeurs par défaut des arguments
[Java] Appel de méthode dynamique par réflexion du type enum (enum)
À propos de next () et nextLine () de la classe Scanner
Résumé du réglage de l'heure au Japon et de la méthode d'affichage
Vérifier les arguments d'appel de méthode dans les blocs avec RSpec
A propos des caractères qui sont complétés dans l'argument de la méthode
À propos de la méthode
Passez un argument à la méthode et recevez le résultat de l'opération comme valeur de retour
[Grails] À propos de la zone de paramétrage et des éléments de paramétrage de application.yml
[Java] À propos de Objects.equals () et examen de la comparaison de chaînes (== et égal à)
[Note technique] À propos des avantages et des inconvénients de Ruby
Méfiez-vous des appels de méthode Ruby et des références de variables
[Java] [Kotlin] Appeler valueOf et les valeurs de Enum de manière générique