Некоторые строки не переводятся при смене языка системы без перезапуска приложения

У меня проблема с тем, что если я открою свое приложение для Android, а затем зайду в системные настройки, чтобы изменить язык, а затем снова открою приложение, некоторые строки в приложении не будут переведены, если приложение не будет принудительно завершено и перезапущено. Есть идеи, почему это происходит? У меня нет android:configChanges установлен в "locale" где-нибудь в моем AndroidManifestТак значит ли это, что все действия должны быть возобновлены самостоятельно?

2 ответа

Решение

Наконец-то разобрался с проблемой. Строки, которые не переводились, заполнялись в статическом классе. Таким образом, поскольку этот класс создавался только один раз, строки не были снова заполнены правильными переводами.

У меня также была эта проблема. Я использовал приведенный ниже код, который был опубликован в ответе Stackru, а затем он изменил язык без обновления действия

public void setLocale(String lang) {

    myLocale = new Locale(lang);
    Resources res = getResources();
    DisplayMetrics dm = res.getDisplayMetrics();
    Configuration conf = res.getConfiguration();
    conf.locale = myLocale;
    res.updateConfiguration(conf, dm);
    onConfigurationChanged(conf);

}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    // refresh your views here
    lblLang.setText(R.string.langselection);
    super.onConfigurationChanged(newConfig);
}

Я надеюсь, что это поможет вам.......

Другие вопросы по тегам