0

アプリにクロアチア語と英語のローカリゼーションを実装しました。ユーザーは で言語を変更できますPreferenceActivity

これはコードです:

public class SettingsActivity extends PreferenceActivity implements
    OnSharedPreferenceChangeListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {...}
    @Override
    protected void onResume() {...}
    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
        String key) {
          if (key.equals("language")) {
            String language= sharedPreferences.getString(key, "1");
            if (language.equals("2")) {
                    switchLang("en");
            } else {
                    switchLang("hr");
            }
          }

   }

   private void switchLang(String langCode) {
    Locale locale = new Locale(langCode);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics());
    onCreate(null);
   }
}

そして、私は res フォルダーに次のような構造を持っています:

ここに画像の説明を入力

フォルダー drawable-en-hdpi と drawable-hr-hdpi には、もちろん同じ名前の画像があります。

問題は、言語を変更するPreferenceActivityと、アプリケーションのすべてのアクティビティですべてが正常に機能することです(すべての文字列参照と描画可能参照は正しいです)。私の主な活動でのみ、描画可能な参照は常に drawable-hr-hdpi フォルダーからのものです。なぜそこで変わらないのですか?そして最高の部分は、私のメイン アクティビティの文字列参照も正しく機能することです。

ティア!

4

1 に答える 1