gpt4 book ai didi

android - 无法从 Android 中特定区域的文件夹中读取字符串

转载 作者:行者123 更新时间:2023-11-30 01:10:25 28 4
gpt4 key购买 nike

我正在尝试覆盖我的应用程序中的语言环境配置。但是,我无法区分语言和地区。

我正在尝试使用以下代码覆盖语言环境。

获取要覆盖的语言环境。

示例:“de_DE”、“de_AT”

public static Locale getLocaleFromString(@NonNull final String locale) {

String[] split = locale.split("_");

if (split != null || split.length > 1) {
String language = split[0];
String country = split[1];

return new Locale(language, language, country);
}

return Locale.getDefault();
}

我的资源文件夹的结构是:

values/strings.xml    (default strings)
values-de-rDE/strings.xml
values-de-rAT/strings.xml

如果我定义了 values-de/strings.xml,应用程序开始从这个文件夹中读取。这意味着区域设置覆盖在应用程序中有效,但 android 系统无法从特定区域的文件夹中读取字符串。

(我的设备语言是英语。)

非常感谢任何帮助。

最佳答案

传递给 Location 的构造函数的参数可能是错误的:
第二个应该是国家,第三个应该是变体。

所以 getLocaleFromString 应该是这样的:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = getLocaleFromString("de_DE");
res.updateConfiguration(conf, dm);

setContentView(R.layout.activity_main);
}

public static Locale getLocaleFromString(@NonNull final String locale) {

String[] split = locale.split("_");

if (split != null || split.length > 1) {
String language = split[0];
String country = split[1];
return new Locale(language, country);
}

return Locale.getDefault();
}
}

关于android - 无法从 Android 中特定区域的文件夹中读取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38460381/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com