Yo no sé si te a ti te ocurría pero cuando salgo de la aplicación, me
encuentro que hay otra instancia abierta debajo, una por cada vez que
se llamó al método refresh(), por lo menos a mí me ocurre así con un
MenúTabHost, lo solucioné así:
private void refresh() {
java.lang.System.exit(0);
finish();
Intent myIntent = new Intent(this, MenuTabHost.class);
startActivity(myIntent);
}
lo que no consigo es que no se llame a este método hasta después de
haber seleccionado un ítem en el diálogo, porque desde que selecciono
la preferencia se marca solo el ítem y se llama al método:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferencias);
listaPref = (ListPreference)findPreference("preferencia_idioma");
listaPref.setOnPreferenceClickListener(prefClick);
}
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, idioma);
return false;
}
};
Pero está mal porque se selecciona el idioma cuando se abre el Dialog,
y debería de ocurrir justo después de seleccionarlo. Por eso es por lo
que decía que me llamaba al método refresh y cerraba la actividad sin
dejar opción a elegir un idioma. Solucionando eso ya creo que quedaría
todo.
¿Cómo lo podría hacer?
Saludos
On 27 oct, 14:59, Jorge Gomes <
jordi.elca...@gmail.com> wrote:
> yo llamo a un metodo refresh(); justo despus de aplicar los cambios de
> idioma el qual finaliza la actividad i la lanza de nuevo
>
> yo cambio el idioma des de la activity main.xml
>
> private void refresh() {
>
> change = true;
>
> finish();
>
> Intent myIntent = new Intent(this, MainMenu.class);
>
> startActivity(myIntent);
>
> }
>
> El 27 de octubre de 2011 16:53, Juan de Dios Maldonado Sánchez <
>
jua...@gmail.com> escribió:
>
>
>
>
>
>
>
> > Eso que estás haciendo, debería estar prohibido. :)
>
> > 2011/10/27 Javier Hernández <
droin...@gmail.com>
> > An'Brain<
https://market.android.com/details?id=com.nidrico.apps.anbrain.lite> -
> > Prueba el nuevo widget inteligente para tu Android.
> > Idiotizer Free<
https://market.android.com/details?id=com.nidrico.apps.idiotizerfree>- Idiotiza a tus amigos. (Se requieren auriculares)
> > Track My App<
https://market.android.com/details?id=com.nidrico.apps.trackmyapp>- Realiza un seguimiento de tus aplicaciones en el Android market.