0
MainActivity.java
でアプリの言語を選択していますが、正しく動作しないことがあります。私は(それが正しく値を返している)私のデータベースから各ユーザーの言語を取得していますFetchUserLanguage
で(Android)言語が正しく動作しない
if(!SaveSharedPreference.getUserId(MainActivity.this).equals("")) {
if (SaveSharedPreference.getWhoLoggedIn(MainActivity.this).equals("Main_User")) {
FetchUserLanguage fetchUserLanguage = new FetchUserLanguage();
fetchUserLanguage.execute();
}
} else {
sDefSystemDefaultLanguage = Resources.getSystem().getConfiguration().locale;
Configuration configuration = new Configuration();
configuration.locale = sDefSystemDefaultLanguage;
getBaseContext().getResources().updateConfiguration(configuration, getBaseContext().getResources().getDisplayMetrics());
}
:
これはonCreate
方法に私のコードです。
私はLocale
を設定する方法は次です:
@Override
protected void onPostExecute(String result) {
switch (result) {
case "English":
locale = new Locale("en");
configuration = new Configuration();
configuration.locale = locale;
getBaseContext().getResources().updateConfiguration(configuration,
getBaseContext().getResources().getDisplayMetrics());
break;
case "Deutsch":
locale = new Locale("de");
configuration = new Configuration();
configuration.locale = locale;
getBaseContext().getResources().updateConfiguration(configuration,
getBaseContext().getResources().getDisplayMetrics());
break;
default:
locale = Resources.getSystem().getConfiguration().locale;
configuration = new Configuration();
configuration.locale = locale;
getBaseContext().getResources().updateConfiguration(configuration,
getBaseContext().getResources().getDisplayMetrics());
break;
}
}
私は、Android Studioからアプリケーションを実行すると、それは完璧に動作し、すべてのアプリが選択した言語に設定されているが、その後、もしI閉じてもう一度開くと、最初の画面が英語で表示されます(もう1つはドイツ語です)。デバイスの言語は英語ですので、Androidプロジェクトのデフォルト言語を使用してください。
多分私は何かを欠いています。
ありがとうございました。
:
ソリューションは
onPostExecute()
メソッドの最後に意思を作成することです。スプラッシュ画面が表示されたら(または再起動後に)、アプリの保存言語を設定します。 –