J'essaie de changer la langue en appuyant sur un bouton dans la barre de menu, mais je veux qu'il passe de la langue norvégienne à la langue anglaise. Ainsi, si la locale.toString() est "no", je passe à "en" et vice versa.
Mon problème est que je n'arrive à le faire basculer qu'une fois et à ne pas revenir en arrière si j'appuie sur le bouton.
C'est la méthode utilisée :
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.Language:
TextView textview = (TextView) findViewById(R.id.resultat);
locale = getResources().getConfiguration().locale;
switch(locale.toString()){
case LOCALE_NORWEGIAN:
textview.append("EN ACTIVATION");
locale = new Locale("en");
break;
case LOCALE_ENGLISH:
textview.append("NOR ACTIVATION");
locale = new Locale("nor");
break;
default:
textview.append("DEFAULT "+locale.toString());
}
Resources res = this.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.setLocale(locale);
res.updateConfiguration(conf,dm);
startActivity(new Intent(this,Game.class));
finish();
return true;
case R.id.Rules:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Voilà à quoi ça ressemble, je veux que la langue change quand j'appuie sur le bouton avec le drapeau dessus. Mais quand j'appuie plus d'une fois sur le bouton, la langue ne change pas.