私のアプリケーションでは、ユーザーが自分の選択に応じて言語を変更できる設定を作成したいと思います。このため私は各言語のそれぞれの値のフォルダと文字列ファイルを作成しました。次のようにも私のコードスニペットは、次のとおりです。アプリケーションの多言語設定に問題がありますか?
public class MultiLanguage extends Activity implements OnClickListener {
private Button germany, english, french;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.language);
english = (Button) findViewById(R.id.english);
english.setOnClickListener(this);
germany = (Button) findViewById(R.id.germany);
germany.setOnClickListener(this);
french = (Button) findViewById(R.id.french);
french.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.english:
setLocale("en");
break;
case R.id.germany:
setLocale("de");
break;
case R.id.french:
setLocale("fr");
break;
}
}
public void setLocale(String localStr) {
Locale localeLang = new Locale(localStr);
Locale.setDefault(localeLang);
Configuration config = new Configuration();
config.locale = localeLang;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
finish();
Intent refreshActivity = new Intent(this, Home.class);
refreshActivity.setAction(Intent.ACTION_CONFIGURATION_CHANGED);
startActivity(refreshActivity);
}
}
は、しかし、私は、アプリケーションから出てくると、アプリを立ち上げていますたびに再び選択した言語は英語となりました。私はこの問題の根源を得ていない。
android:configChanges="locale"
すべてのボディは、私がここで行われているのミスを修正することができます:マニフェストファイルで
は、私はまた、次の行を言及しています。