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.
@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.