0

デバイスの UI として機能する Android アプリケーションがあります。つまり、デバイスを開くと、デフォルトの Android インターフェイスが表示されず、代わりにアプリケーションが表示されます。Android 言語を変更すると、Android の OS 文字列は変更されますが、アプリケーションの文字列は変更されません。再起動する必要があります。再起動後に変更されますが、これは私が望むものではありません。なぜなら、そのアプリケーションは私のメインアプリであり、アプリケーションを再起動するにはすべてのシステムを再起動する必要があるからです. お分かりのように、このアプリケーションはシステムの全ライフタイムにわたって機能します。再起動せずに、実行中に言語を変更する必要があります。

どうやってやるの?

注意: Locale は、私が望むものに対して機能していません。

4

2 に答える 2

1

onCreateメソッドで次を呼び出して、ロケール文字列として提供される言語を選択します。

/**
 * Set the default Locale for app
 * @param context context on which the locale will be implemented
 * @param locale new locale for example, <b>sv</b> for Swedish or <b>en</b> for English
 */
public static void setDefaultLocale(Context context, String locale) {
    Locale locJa = new Locale(locale.trim());
    Locale.setDefault(locJa);

    Configuration config = new Configuration();
    config.locale = locJa;

    context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());

    locJa = null;
    config = null;
}
于 2012-04-13T06:32:41.407 に答える