アプリは3つの言語をサポートしており、ユーザーはこれらのオプションの中から選択できます。 デバイスロケールをサポートされている言語のいずれかに変更すると、UI言語が自動的に変更されます。ユーザーが既にアプリケーション内でサポートされている3つの言語のいずれかを選択した場合、変更したくないという問題があります。ロケール変更後のアプリ言語の変更を防止する
この自動言語変更を防止するにはどうすればよいですか?
アプリは3つの言語をサポートしており、ユーザーはこれらのオプションの中から選択できます。 デバイスロケールをサポートされている言語のいずれかに変更すると、UI言語が自動的に変更されます。ユーザーが既にアプリケーション内でサポートされている3つの言語のいずれかを選択した場合、変更したくないという問題があります。ロケール変更後のアプリ言語の変更を防止する
この自動言語変更を防止するにはどうすればよいですか?
ユーザーがアプリでそれを選択すると、ロケールをSharedPreferenceに保存します。また、コードでは、サポートされているロケールをデフォルトで追加します。
String userLocale = App.getSharedPreferences().getString(SELECTED_LOCALE,"your_default_string");
あなたにApplication.classのonCreateメソッドは、このブロックを追加します。
Locale locale = new Locale(userLocale) //
Resources resources = getResources();
Configuration configuration = resources.getConfiguration();
configuration.setLocale(locale);
ありがとう、私はそれが私のロケールが設定されているシナリオを意味し、ユーザーが私のアプリを最小化し、デバイスのロケールを変更し、私のアプリケーションを再開 – Sharas
@Sharasこれをあなたの活動のonConfigurationChanged –
私がやったことは、ユーザが言語を変更するかどうかを示すために私の好みにフラグを更新し、活動のonResume()
にその値をチェックしていますもしそうなら、それを再起動する。
アクティビティの時onCreate()
言語を保存した設定に更新します。
あなたはしないでください。電話のロケールを使用すると、それを上書きする正当な理由はありません。 –