PDA

Ver la Versión Completa : [ SOLUCIONADO ] Doble consulta relacionada.


monchyrcg
15/06/12, 16:21:29
Código:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

}

@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
boton=(Button)findViewById(R.id.emergenciasInfo);
boton.setOnClickListener(this);
boton2=(Button)findViewById(R.id.violenciaInfo);
boton2.setOnClickListener(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = this.getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch(item.getItemId()){
case R.id.espanol:
mLocale = new Locale("");
Locale.setDefault(mLocale);
config = getBaseContext().getResources().getConfiguration() ;
if (!config.locale.equals(mLocale)) {
config.locale = mLocale;
getBaseContext().getResources().updateConfiguratio n(config, null);
}
setContentView(R.layout.main);
break;
case R.id.catalan:
mLocale = new Locale("ca");
Locale.setDefault(mLocale);
config = getBaseContext().getResources().getConfiguration() ;
if (!config.locale.equals(mLocale)) {
config.locale = mLocale;
getBaseContext().getResources().updateConfiguratio n(config, null);
}
setContentView(R.layout.main);
break;
case R.id.ingles:
mLocale = new Locale("en");
Locale.setDefault(mLocale);
config = getBaseContext().getResources().getConfiguration() ;
if (!config.locale.equals(mLocale)) {
config.locale = mLocale;
getBaseContext().getResources().updateConfiguratio n(config, null);
}
setContentView(R.layout.main);
break;

case R.id.euskera:
mLocale = new Locale("eu");
Locale.setDefault(mLocale);
config = getBaseContext().getResources().getConfiguration() ;
if (!config.locale.equals(mLocale)) {
config.locale = mLocale;
getBaseContext().getResources().updateConfiguratio n(config, null);
}
setContentView(R.layout.main);
break;
}
return super.onOptionsItemSelected(item);
}


public void onClick(View v) {
switch(v.getId()){
case R.id.emergenciasInfo:
ServicioEmergencias.this.startActivity(new Intent(ServicioEmergencias.this,EmergenciasInfo.cl ass));
break;
case R.id.violenciaInfo:
ServicioEmergencias.this.startActivity(new Intent(ServicioEmergencias.this,ViolenciaInfo.clas s));
break;

}

}


La aplicación es bastante sencilla, dos textview, tiene dos botones los cuales lo único que hacen es llamar a otra actividad, por otra parte tiene un menu donde puedo elegir cambiar el idioma de la aplicación, el idioma de los textView y de los botones me los cambia pero no el del menu. Por otra parte los listener de los botones me dejan de funcionar cuando cambio el idioma.
Alguien le ha pasado? Hay una manera más elegante para que el usuario pueda elegir el idioma de la aplicación desde la propia aplicación? Muchas gracias.

monchyrcg
16/06/12, 15:56:52
Nadie sabe nada!!????

Enviado desde mi LG-P970 usando Tapatalk 2

mocelet
16/06/12, 17:59:54
Por lo que cuentan en un hilo de stackoverflow (http://stackoverflow.com/questions/2900023/change-language-programatically-in-android) no es muy recomendable cambiar el "locale" dinámicamente porque Android luego hace cosas raras. Entiendo que te has topado con las cosas raras...

monchyrcg
17/06/12, 19:37:03
Cierto. Llevo todo el fin de semana buscando por la red y todo el mundo igual. Nada de cambiar el lenguaje de la aplicación de manera dinámica.

En fin gracias a todos