在较旧的系统上不使用string.xml的翻译

问题描述 投票:0回答:1

在我的应用中,我正在使用另一个strings.xml进行英语翻译。通过以下方式更改语言:

    private void saveLang(String lng) {

    Locale locale = new Locale(lng);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics());
    super.recreate();

}

这些天我注意到的问题是,在Android 6和7上绝对会忽略英语字符串文件,但在Android 8上可以正常工作。

所以我的问题是,为什么翻译不能在较旧的设备上运行,而在Android 8及更高版本上可用?屏幕仅重新加载,但文本未更新。

android translation
1个回答
0
投票

我做了很多实验,最后发现,当我只用getBaseContext().getResources()代替this.getResources()时,它也开始在较旧的android上工作!

奇怪的是,在Android 8上它与getBaseContext()一起使用

© www.soinside.com 2019 - 2024. All rights reserved.