我正在尝试在我的应用中更改设备的语言。我有这段代码:
Locale locale = new Locale("en_US");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getApplicationContext().getResources().updateConfiguration(config, null);
Log.i("some","Well, I tried!");
但是这段代码不会改变我的设备状态,而在LogCat中我可以看到“嗯,我试过”的消息。这种奇怪行为的可能原因是什么?
答案 0 :(得分:1)
编辑此行
getApplicationContext().getResources().updateConfiguration(config, null);
像这样:
context.getApplicationContext().getResources().updateConfiguration(config, null);
答案 1 :(得分:0)
手动更改应用程序区域设置。
您需要使用以下代码设置区域设置。
Locale locale = new Locale("AR"); // AR here is for arabic
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
在调用“setContentView”方法之前,确保在活动“onCreate”方法中设置它。
另请参阅为所需语言指定资源文件。