无法更改Android设备中的语言

时间:2013-12-23 11:21:53

标签: android

我正在尝试在我的应用中更改设备的语言。我有这段代码:

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中我可以看到“嗯,我试过”的消息。这种奇怪行为的可能原因是什么?

2 个答案:

答案 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”方法中设置它。

另请参阅为所需语言指定资源文件。