Не могу получить правильную строку из ресурса - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть папки 'values' и 'values-hu' с файлами strings.xml внутри.Когда я получаю строковый ресурс в элемент списка, все отлично работает на API 24, но когда я пытаюсь получить тот же строковый ресурс на API 26 или API 28, я получаю английское слово вместо венгерского.Это эмулируемые устройства с локализацией по умолчанию «En».

То же самое происходит на моем локализованном телефоне 'hu' (Galaxy S8 API 26), но наоборот.Независимо от того, я выбираю английский или венгерский язык в приложении, я получаю венгерские слова.Есть ли что-то, что я делаю неправильно?

Это XML-файлы, где я получаю строки из файла ресурсов:

<TextView
            android:id="@+id/buy_headerc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/text_buy"
            android:textStyle="bold"
            android:textColor="@android:color/black" />

<TextView
            android:id="@+id/sell_headerc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/text_sell"
            android:textStyle="bold"
            android:textColor="@android:color/black" />

И здесь я устанавливаю локализацию:

public void whichLanguageSelected(){
    if (RadioButtonEnglish.isChecked()){
        selectedLanguage = "en";
    }
    else if (RadioButtonHungarian.isChecked()){
        selectedLanguage = "hu";
    }
    Locale setLocaleTo = new Locale(selectedLanguage);
    Locale.setDefault(setLocaleTo);
    Configuration config = getBaseContext().getResources().getConfiguration();
    config.locale = setLocaleTo;
    getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); // módosítások mentése
}

Вот скриншот:

введите описание изображения здесь

Вам необходимо возобновить свою деятельность.См .: Невозможно изменить язык в Oreo

...