El texto de TextView desaparece cuando se gira el dispositivo

Estoy escribiendo una aplicación de marcación telefónica para Android. He creado un diseño para el teclado, que contiene un TextView y 10 botones. Los botones son como teclas para 10 dígitos (0 a 9) y TextView es para mostrar el número según las teclas presionadas.

En mi aplicación, estoy añadiendo el texto ("0" o "1", etc.) al TextView para cada botón presionado. Si presiono los botones 1, 2, 3 , el texto de TextView es 123 . El problema es, vamos a tomar la pantalla está en modo horizontal y TextView contiene 123, si lo cambio, en modo vertical no hay texto en TextView.

Por favor, ayúdame con respecto a esto.

Por favor, compruebe el cambio de orientación, en el método de creación se llama, que requiere que todas las vistas que se crean de nuevo, por lo que necesita utilizar uno de los siguientes métodos:

  1. Use el método onSavedInstance y guarde los estados de componentes / vistas para agrupar.
  2. Sólo use el siguiente indicador true en su archivo de manifiesto en la etiqueta de actividad android: configChanges = "keyboardHidden | orientation". como abajo:

     <activity android:name=".SampleActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation"> ... </activity> 

Lo que @jeet recomienda no funcionó para mí. Tuve que añadir "screenSize". Esta es la línea que debe agregar en su manifest.xml en el nodo <activity> de su actividad:

 android:configChanges="keyboardHidden|orientation|screenSize" 

Así, el nodo completo puede tener este aspecto:

 <activity android:name=".YourActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@style/AppTheme.NoActionBar"> 

La razón de esto se debe a que Android básicamente destruye la actividad y la crea de nuevo cada vez que gira el dispositivo. Esto es principalmente para permitir diferentes diseños basados ​​en modo retrato / paisaje.

La mejor manera de manejar esto es almacenar los datos que necesite mantener dentro del Activity Bundle , respondiendo al evento onSavedInstance (llamado justo antes de que Android destruya la actividad), y luego volver a aplicar los del evento onCreate estándar.

Aunque puede agregar "orientación" a la propiedad configChanges, tenga en cuenta que básicamente le está diciendo a Android que va a manejar todo lo relacionado con el cambio de orientación usted mismo, incluyendo cambiar el diseño, etc.

Si alguien todavía está teniendo problemas … esto hizo el truco para mí

 public class BranjeKP extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_branje_kp); //... } @Override protected void onSaveInstanceState(Bundle out) { super.onSaveInstanceState(out); out.putString("TVNazivPod", TVNazivPodatka.getText().toString()); out.putString("TVEnotaMere", TVEnotaMere.getText().toString()); } @Override protected void onRestoreInstanceState(Bundle in) { super.onRestoreInstanceState(in); TVNazivPodatka.setText(in.getString("TVNazivPod")); TVEnotaMere.setText(in.getString("TVEnotaMere")); } 

Básicamente, guarda los valores que desee antes de la rotación (es decir, cuando se llama onSaveInstanceState) a un paquete y después de la rotación (onRestoreInstanceState), saca todos los valores de Bundle. Sólo para aclarar, TVNazivPodatka y TVEnotaMere son widgets TextView.

… con una ayuda de Cómo evitar que las vistas personalizadas pierdan el estado a través de los cambios de orientación de la pantalla

  • Actualizar dinámicamente TextView en Android
  • Cómo leer el archivo de texto en android desde la web?
  • Android - Configuración de TextView a negrita no funciona
  • Cómo establecer el texto de subrayado en textview?
  • ¿Existe tal llamada de método "getBackgroundColor"?
  • Android: ¿define TextView TextStyle mediante programación?
  • Single TextView con texto coloreado múltiple
  • Configuración de un ancho de TextView en java
  • Tamaño de texto de Android por programa demasiado grande
  • Cómo funciona autolink: map work
  • Cómo se desvanecen borde de TextView en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.