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

  • Cómo configurar mulitple clic evento para la única textview?
  • Actualizar dinámicamente TextView en Android
  • Android: ¿define TextView TextStyle mediante programación?
  • Configuración de un ancho de TextView en java
  • Android Html.fromHtml (String) no funciona para <font color = '#'> text </ font>
  • LineSpacingMultiplier y maxLines cortan la última línea, android textview
  • Calcular el tamaño del texto según el ancho del área de texto
  • Cómo actualizar un TextView mientras se realiza un bucle en Android?
  • End TextView con 3 puntos con el uso de maxLength
  • Android: Crear TextView que parpadea cuando se hace clic
  • Valor entero en TextView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.