Android はデフォルトではなく現在のロケールを取得します 質問する

Android はデフォルトではなく現在のロケールを取得します 質問する

Android でユーザーの現在のロケールを取得するにはどうすればよいですか?

デフォルトのものを入手することはできますが、これは現在のものではない可能性があります。

基本的に、現在のロケールの2文字の言語コードが必要です。デフォルトのものではありません。Locale.current()

ベストアンサー1

デフォルトはLocale、実行時にシステム プロパティ設定からアプリケーション プロセスに対して静的に構築されるため、アプリケーションの起動時にLocaleそのデバイスで選択されたを表します。通常、これで問題ありませんが、アプリケーション プロセスの実行後にユーザーが の設定を変更した場合、 の値はすぐには更新されない可能性があります。LocalegetDefaultLocale()

アプリケーションで何らかの理由でこのようなイベントをトラップする必要がある場合は、代わりにLocaleリソースConfigurationオブジェクトから利用可能なものを取得してみてください。

Locale current = getResources().getConfiguration().locale;

アプリケーションで必要な場合は、設定の変更後にこの値がより速く更新されることがあります。

コメントからのAPI 24への更新

Locale current = getResources().getConfiguration().getLocales().get(0) // is now the preferred accessor.

おすすめ記事