La restauration de l'état de TextView après la rotation de l'écran?
Dans mon application j'ai TextView
et EditText
. Les deux ont des données. Lorsque l'orientation de l'écran change les données dans le EditText
reste, mais TextView
les données sont effacées.
Peut quelqu'un m'aider à trouver un moyen de conserver des données TextView
trop?
Vous devez vous connecter pour publier un commentaire.
Si vous voulez forcer votre
TextView
de sauvegarder son état, vous devez ajouterfreezesText
attribut:À partir de la documentation sur
freezesText
:Afin de conserver les données sur le changement d'orientation vous avez besoin pour mettre en œuvre les deux méthodes:
1) tous les points de vue avec un ID d'enregistrer leur état. Des widgets Android, avec un ID, dont l'état peut être modifié par l'utilisateur, affiche pour enregistrer leur état sur un doux tuer. Donc EditText enregistre son état, mais TextView ne pas enregistrer son état sur un doux tuer.
"Autant que je sache, Android seulement dérange enregistrement de l'état de choses qui sont attendus à
changement. C'est pourquoi, il enregistre le texte dans un EditText (dont un utilisateur est
susceptibles de changer) et peut-être de ne pas enregistrer l'état d'un TextView (qui normalement reste statique)"
Marque M
Vous pouvez ainsi choisir d'enregistrer l'état de la textview dans onSaveInstanceState et vous pouvez choisir de restaurer l'état de la textview dans onCreate.
2) la Meilleure pratique consiste à enregistrer "interne" non affichage de l'état de l'instance, même si vous déclarez
De la documentation:
"Toutefois, votre demande doit toujours être en mesure d'arrêter et de redémarrer avec son état précédent intacte. Non seulement parce qu'il y a d'autres modifications de configuration que vous ne pouvez pas vous empêcher de redémarrer votre application, mais aussi pour gérer des événements tels que lorsque l'utilisateur reçoit un appel téléphonique entrant et retourne ensuite à votre demande."
JAL
Android ne gère pas ce genre de choses pour vous. Vous devez sauvegarder toutes les données manuellement.
Vous pouvez utiliser dans une activité à enregistrer les valeurs
et utiliser quelque chose comme cela dans la méthode oncreate de l'activité pour charger des objets sauvés
vous pouvez également choisir de désactiver le changement d'orientation pour une activité
Modifier vos activités dans AndroidManifest.xml pour remplacer l'orientation de modifier ce comportement en ajoutant ceci à votre activité/activités:
Il devrait ressembler à quelque chose comme ceci:
Ajouter à AndroidManifest.xml
Mettre votre Nom d'Activité dans le lieu de Activity_Name
Cela fonctionne avec la modification de la valeur TextField aussi.
juste ajouter
à votre Activité AndroidManifest.xml.
Lorsque des modifications de configuration Android redémarrage de votre activité par défaut. Pour changer cela, vous devez remplacer
onConfigurationChanged()
méthode. Aussi, vous devez ajouterandroid:configChanges
à votre fichier manifeste.Vous pouvez en lire plus ici.
J'ai aussi utilisé
et il ne fonctionne pas.
Mais ensuite, j'ai trouvé une solution.
Vérifier si vous avez la ligne suivante correctement dans votre maniest:
veillez à ne pas y lire quelque chose comme
Je l'ai eu la deuxième façon en premier lieu, mais quand j'ai corrigé l'état se sont sauvés.