起動時にユーザーが設定を更新してアプリを再起動してダイアログ内の言語を選択したときに、アプリのロケールを変更できました。アプリの起動時にロケールを設定する
private void changeAppLanguage(String languageCode) {
Locale locale = new Locale(languageCode);
Locale.setDefault(locale);
Resources resources = mContext.getResources();
Configuration configuration = resources.getConfiguration();
// minSdkVersion: 16
configuration.locale = locale;
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
}
private void restartActivity() {
finish();
Intent iMainActivity = getIntent();
startActivity(iMainActivity);
}
しかし、冷たいアプリの起動時に、私はMainActivityが起動前に、ロケールを設定することはできませんよ。それだけで正しい文字列リソースをロードしませんし、私はない/できないこと最初の起動時にアクティビティを再開したい! 私はすでにchangeAppLanguage()
を別の注文でonCreate()
と呼んでいたので、何が間違っているのか分かりません。
@Override
protected void onCreate(Bundle savedInstanceState) {
changeAppLanguage(getLanguageCode());
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
variousSetups();
}