无法从资源获取正确的字符串

时间:2019-02-14 11:23:37

标签: android localization resources locale multilingual

我已经有了“ values”和“ values-hu”文件夹,其中包含strings.xml文件。当我将字符串资源获取到listview元素时,在API 24上一切正常,但是当我尝试在API 26或API 28上获取相同的字符串资源时,我得到的是英语单词,而不是匈牙利语。这些是具有默认本地化“ En”的仿真设备。

我的“ hu”本地电话(Galaxy S8 API 26)上也发生了同样的事情,反之亦然。无论我在应用程序中选择英语还是匈牙利语,我都会得到匈牙利语单词。我在做错什么吗?

这些是XML-s,我从资源文件中获取字符串:

<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
}

这是屏幕截图:

enter image description here

您需要重新开始活动。看到这个:Unable to change language in Oreo

0 个答案:

没有答案