En mi aplicación tengo TextView
y EditText
. Ambos contienen datos. Cuando la orientación de la pantalla cambia, los datos EditText
quedan, pero los TextView
datos se borran.
¿Alguien puede ayudarme a encontrar una manera de retener datos TextView
también?
Para retener datos sobre el cambio de orientación, debe implementar los dos métodos:
fuente
1) No todas las vistas con ID guardan su estado. Los widgets de Android, con una identificación, cuyo estado puede ser cambiado por el usuario, parecen guardar su estado en una eliminación suave. Entonces EditText guarda su estado, pero TextView no guarda su estado en un cierre suave.
"AFAIK, Android solo se molesta en guardar el estado para las cosas que se espera que cambien. Es por eso que guarda el texto en un EditText (que es probable que cambie un usuario) y quizás no guarda el estado para un TextView (que normalmente permanece estático ) "
Mark M
Por lo tanto, puede optar por guardar el estado de la vista de texto en onSaveInstanceState y puede optar por restaurar el estado de la vista de texto en onCreate.
2) La mejor práctica es guardar el estado de la instancia sin vista "interna" incluso si declara
De los documentos:
"Sin embargo, tu aplicación siempre debe poder cerrarse y reiniciarse con su estado anterior intacto. No solo porque hay otros cambios de configuración que no puedes evitar para reiniciar tu aplicación, sino también para manejar eventos como cuando el usuario recibe una entrada llamada telefónica y luego regresa a su aplicación ".
JAL
fuente
Android no maneja ese tipo de cosas por ti. Ha guardado todos los datos manualmente.
Puede usar en una actividad para guardar valores
y use algo como esto en el método oncreate de una actividad para cargar los objetos guardados
también puede elegir desactivar el cambio de orientación para una actividad
fuente
Modifique sus actividades en AndroidManifest.xml para anular el comportamiento de cambio de orientación agregando esto a su actividad / actividades:
Debería verse algo así:
fuente
Agréguelos a AndroidManifest.xml
Coloque el nombre de su actividad en el lugar de Activity_Name
Esto también funcionará con el cambio de valor de TextField.
fuente
solo agrega
a su actividad en AndroidManifest.xml.
fuente
Cuando la configuración cambia, Android reinicia su actividad de forma predeterminada. Para cambiar esto, debe anular el
onConfigurationChanged()
método. Además, debe agregarandroid:configChanges
a su archivo de manifiesto.Puedes leer más aquí .
fuente
Yo también usé
y no funcionó.
Pero luego encontré una solución.
Verifica si tienes la siguiente línea correctamente en tu forma más maníaca:
asegúrese de que no lea algo como
Lo tenía de la segunda forma en primer lugar, pero cuando lo corrigí, el estado se conservó.
fuente