1

Android での文字列の取得は、デバイスに設定するユーザーの選択に基づいて自動的に行われます。ただし、ユーザーがアプリ間で異なるロケールを使用したい場合があります (たとえば、プログラム A はフランス語、プログラム B は英語)。

特定のロケールの使用に関していくつか質問があります。

  1. 外部アプリを実行して、現在のロケールが X であること (または特定のロケールを使用すること) を伝えることは可能ですか? もしそうなら、どのように?

  2. 現在のアプリを実行して、現在のロケールが X であることを伝えることはできますか? もしそうなら、どのように?

  3. 特定のロケール X を使用して、現在のアプリで (たとえば、getString を使用して) 文字列を取得することは可能ですか? もしそうなら、どのように?

4

2 に答える 2

0

質問 2、3 について: デバイスのロケールに関係なく、次の方法を使用してアプリに特定のロケールを設定しました (たとえば、デバイスのデフォルト ロケールは日本に設定されていますが、アプリは次のロケールで起動します)。アメリカ):

MyApp クラスという名前の Application クラスを拡張し、onCreate メソッドに次のスニペットを追加します。

public static Configuration mConfig;

public void onCreate() {
   super.onCreate();
   ...
   mConfig = getResources().getConfiguration();
   mConfig.locale = new Locale(user_locale); // user_locale is your self-defined locale
   getResources().updateConfiguration(mConfig, null);
}

さらに、マニフェスト ファイルのメイン アクティビティ パーツでこれを定義する必要があります。

android:configChanges="locale"

このようにして、質問 2 と 3 であなたが望むことを行うことができます。ロケールを別のロケールに変更したい場合 (または実際に変更したい場合) は、アプリケーションを再起動する必要があることに注意してください。

その助けを願っています。

于 2014-06-25T09:56:34.830 に答える
0

それは可能ですが、あなたはアンドロイドシステムに反対しています。

次のようなものを使用して、各アクティビティの言語を設定できます。

    Resources res = context.getResources();
    // Change locale settings in the app.
    DisplayMetrics dm = res.getDisplayMetrics();
    android.content.res.Configuration conf = res.getConfiguration();
    conf.locale = new Locale(language_code.toLowerCase());
    res.updateConfiguration(conf, dm);

ここで構成を変更する別の方法を見つけることができます

于 2013-01-23T18:41:54.520 に答える