我希望将我的应用设置为使用value-th \ string.xml(我拥有泰语中的所有字符串值)。这就是我要做的。 -app开始。检查共享偏好值语言(在这种情况下是英语/泰语)如果是泰语,我将运行泰语。我有这个功能,但是,我注意到在Locale中,我没有泰语选项。
public static void updateLanguageResources(Context context, String language) {
Locale locale = new Locale(language);
Locale.setDefault(locale);
Resources resources = context.getResources();
android.content.res.Configuration configuration = resources.getConfiguration();
configuration.locale = locale;
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
}
我还尝试使用以下代码来更改通过设置。但是,这会将手机设置更改为泰语,我的意图是仅对我的应用程序进行更改。不是设备的设置。
Intent intent = new Intent(Settings.ACTION_LOCALE_SETTINGS);
startActivity(intent);
欢迎任何建议。提前谢谢。
答案 0 :(得分:0)
我找到了自己问题的答案。希望这可能在将来帮助其他人。
首先需要准备一个values \ string.xml(默认英文),第二语言值-th \ string.xml
public static void changeLocale(Context context, Locale locale) {
Configuration conf = context.getResources().getConfiguration();
conf.locale = locale;
Locale.setDefault(locale);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
conf.setLayoutDirection(conf.locale);
}
System.out.println("changeLocale");
context.getResources().updateConfiguration(conf, context.getResources().getDisplayMetrics());
}
然后调用函数...确保泰语的文件是-th
Utils.changeLocale(MyApplication.getInstance(), new Locale("th"));