Después de la rotación de la pantalla, se cambiará el idioma de mi aplicación

He creado una aplicación androide bilingüe (con dos idiomas). He insertado mis cadenas de recursos en dos archivos:

For Persian language (default) values/strings_locale.xml‬ For English language values-en/strings_locale.xml‬ 

En mi primera actividad de lanzamiento he insertado el siguiente código:

 Configuration c = new Configuration(this.getResources().getConfiguration()); c.locale = new Locale("fa_IR"); this.getResources().updateConfiguration(c, this.getResources().getDisplayMetrics()); 

Así que después de este código, mi idioma predeterminado será persa y todas las cadenas de todas las actividades se muestran en idioma persa correctamente.

Pero el problema es cuando la pantalla del dispositivo se gira, todas las cadenas se muestran en Inglés y también sucede para todas las demás actividades! Y tengo que cerrar y reabrir mi aplicación.

¿Por qué sucede esto y cómo puedo solucionar este problema?

2 Solutions collect form web for “Después de la rotación de la pantalla, se cambiará el idioma de mi aplicación”

Puede hacer una clase que extienda la Application . Allí puede anular un método que se llama cada vez que cambia la configuración (ejemplo cuando se cambia la orientación de la pantalla).

Algo como:

 public class MyApplication extends Application { @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setLocale(); } private void setLocale() { Locale locale = new Locale("fa_IR"); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); } } 

Y no te olvides de declararlo en el manifiesto: ejemplo de clase de aplicación

En AndroidManifest.xml:

 <application android:name="com.blaablaa.bumbam.MyApplication" ... 

No entiendo exactamente lo que estás tratando de hacer. Pero, en general, no tiene que administrar el idioma de la aplicación. Android seleccionará automáticamente el idioma del teléfono si está disponible y, en cualquier otro caso, abre un diálogo para elegir el idioma.

Si desea establecer un lenguaje independiente de aquel con su código, lo cual no recomendaría, es probable que haya un problema con su ciclo de vida que impide que se ejecute de nuevo después de un cambio de orientación. Puedo ayudarle con eso si usted publica más de su código.

  • Android Mejor forma de evitar Diálogos para descartar después de una rotación del dispositivo
  • Fragmentos de Android que conservan datos
  • Deshabilitar y habilitar cambios de orientación en una actividad en Android mediante programación
  • Perder datos al girar la pantalla
  • Rotar ImageView en Android <Nivel de API 11
  • Android lo que debe ser punto de pivote para girar la imagen alrededor de su centro de la base
  • Android Rotación de MapView
  • OnCreate no se llama cuando la pantalla gira - Android
  • Cómo girar cuatro sprites al foco de estos sprites
  • Estoy tratando de rotar imagebutton a 360 haciendo clic en él, pero no se puede girar?
  • Aplicar una animación a varias vistas al mismo tiempo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.