I want to change the language of my options menu. This code works in all my activity excepts menu.
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
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().updateConfiguration(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().updateConfiguration(config, null);
}
setContentView(R.layout.main);
break;
}
return super.onOptionsItemSelected(item);
}
why? I tried with onPrepareOptionsMenu but it creates additional menus
public boolean onPrepareOptionsMenu(Menu menu) {
if(config.equals(this.getBaseContext().getResources().getConfiguration())){
MenuInflater inflater = this.getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
return false;
}