Dans mon application, j'ai TextView
et EditText
. Les deux contiennent des données. Lorsque l'orientation de l'écran change les données dans les EditText
restes, mais les TextView
données sont effacées.
Quelqu'un peut-il aussi m'aider à trouver un moyen de conserver les données TextView
?
Afin de conserver les données sur le changement d'orientation, vous devez implémenter les deux méthodes:
la source
1) Toutes les vues avec un ID ne sauvegardent pas leur état. Les widgets Android, avec un identifiant, dont l'état peut être modifié par l'utilisateur, semblent enregistrer leur état lors d'un soft kill. Ainsi, EditText enregistre son état, mais TextView ne sauvegarde pas son état lors d'un arrêt logiciel.
"AFAIK, Android ne dérange l'enregistrement de l'état que pour les choses qui devraient changer. C'est pourquoi il enregistre le texte dans un EditText (qu'un utilisateur est susceptible de changer) et n'enregistre peut-être pas l'état pour un TextView (qui reste normalement statique ) "
Mark M
Vous pouvez donc choisir d'enregistrer l'état de la vue de texte dans onSaveInstanceState et vous pouvez choisir de restaurer l'état de la vue de texte dans onCreate.
2) La meilleure pratique consiste à enregistrer l'état d'instance "interne" sans vue même si vous déclarez
À partir de la documentation:
"Cependant, votre application doit toujours pouvoir s'arrêter et redémarrer avec son état précédent intact. Non seulement parce qu'il y a d'autres modifications de configuration que vous ne pouvez pas empêcher de redémarrer votre application, mais aussi afin de gérer des événements tels que lorsque l'utilisateur reçoit un message entrant appel téléphonique, puis revient à votre application. "
JAL
la source
Android ne gère pas ce genre de choses pour vous. Vous avez enregistré toutes les données manuellement.
Vous pouvez utiliser dans une activité pour enregistrer des valeurs
et utilisez quelque chose comme ça dans la méthode oncreate d'une activité pour charger les objets enregistrés
vous pouvez également choisir la désactivation du changement d'orientation pour une activité
la source
Modifiez vos activités dans AndroidManifest.xml pour remplacer le comportement de changement d'orientation en ajoutant ceci à votre activité / activités:
Cela devrait ressembler un peu à ceci:
la source
Ajoutez-les à AndroidManifest.xml
Mettez votre nom d'activité à la place de Activity_Name
Cela fonctionnera également avec le changement de valeur TextField.
la source
il suffit d'ajouter
à votre activité dans AndroidManifest.xml.
la source
Lorsque la configuration change, Android redémarre votre activité par défaut. Pour changer cela, vous devez remplacer la
onConfigurationChanged()
méthode. Vous devez également ajouterandroid:configChanges
à votre fichier manifeste.Vous pouvez en savoir plus ici .
la source
J'ai aussi utilisé
et cela n'a pas fonctionné.
Mais ensuite j'ai trouvé une solution.
Vérifiez si vous avez correctement la ligne suivante dans votre maniest:
assurez-vous qu'il ne lit pas quelque chose comme
Je l'ai eu la deuxième manière en premier lieu mais quand je l'ai corrigé, l'état a été préservé.
la source