Tengo una aplicación en varios idiomas, el idioma cambia según la configuración del terminal.
Pero además, en las preferencias de mi app, en una PreferenceActivity he añadido un menú para que el usuario pueda cambiar el idioma explícitamente.
Bueno, esto "funciona"
Código PHP:
private Preference.OnPreferenceClickListener prefClick = new
Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
SharedPreferences sharedPrefs =
PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
idioma = sharedPrefs.getString("preferencia_idioma", "NULL");
Locale locale = new Locale(idioma);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
Log.d(logTag, "Se ha seleccionado: " + idioma);
return false;
}
};
Esto es para cuando el usuario seleccione uno de los idiomas en el Dialog cambie el idioma, ya digo funciona entre comillas, porque después de seleccionar el idioma hay que cambiar de Activities para que los recursos (strings, drawables, etc.) cambien, sino no hay manera.
Entonces necesitaría saber si hay algún método para actualizar todas esas Activities sin tener que ir cambiando entre Activities para que se actualice.
Saludos