0

英語とヘブライ語の両方で使用したいアプリがあります。values および values-iw フォルダーの下に 2 つの String ファイルを追加しました。ユーザーが別の言語を選択している場合、次のコードを実行します。

Locale locale;
     if (location.equals("iw")){
         locale= new Locale("iw");
         Errors._langauge=1;    
     }
     else{
         locale=Locale.ENGLISH;
         Errors._langauge=2;
     }
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
          getBaseContext().getResources().getDisplayMetrics());

これは、デバイスを配置するまで正常に機能し、layout-land ディレクトリの xml が読み込まれます。land xml がロードされると、言語はシステムのデフォルト言語に戻ります。どうすればそれを防ぐことができますか?

4

1 に答える 1

2

向きを変更すると、アクティビティが再作成されるため、 onCreate() が再度実行されます。onCreate() メソッドでデフォルト値を初期化していると想定しているため、元に戻ります。

于 2012-06-07T14:18:07.367 に答える