メニューバーのボタンを押して言語を変更しようとしていますが、ノルウェー語と英語の切り替えが必要です。したがって、locale.toString()が "no"の場合、私は "en"に切り替え、その逆も同様です。ボタンで言語を変更するにはどうすればよいですか?
私の問題は、一度切り替えるだけで、ボタンを押すと元に戻ってこないということです。
これを使用する方法である:これは、それがどのように見えるかです
@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);
}
}
、私はそれにFLAGGでボタンを押したときに言語を変更したいです。しかし、複数回押すと、言語は変更されません。
locale = new Locale( "en")は変数のロケールのみを設定し、リソースのデフォルトロケールでチェックしているので、この行を書く必要があると思います。Locale.setDefault(locale);ロケールで値を設定した後 – Vickyexpert
しかし、conf.setLocale(ロケール)には、ロケールを引数として使用しています –
使用例の例を示してください。あなたのアプリで実行する正確な手順と結果は何ですか?説明するスクリーンショットを含めてください。 –