1. ホーム
  2. android

[解決済み] Androidがデフォルトではなく、現在のロケールを取得する

2022-03-16 07:02:53

質問

Androidでユーザーの現在のLocaleを取得する方法を教えてください。

デフォルトのものを取得することはできますが、これが現在のものであるとは限りませんよね?

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

解決方法は?

デフォルトの Locale は、アプリケーション・プロセスの実行時にシステムのプロパティ設定から静的に構築されるので、これは Locale そのデバイスで選択された アプリケーションを起動したとき . 通常、これは問題ないのですが、ユーザーが自分の Locale の値は、アプリケーションのプロセスが実行された後、設定の getDefaultLocale() は、おそらくすぐに更新されないでしょう。

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

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

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