2013-12-23 5 views
1

Я пытаюсь изменить язык своего устройства в своем приложении. У меня есть этот код:Невозможно изменить язык на устройстве 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 я могу видеть «Ну, я попробовал» сообщение. Каковы возможные причины такого странного поведения?

ответ

1

Редактировать эту строку

getApplicationContext().getResources().updateConfiguration(config, null); 

так:

context.getApplicationContext().getResources().updateConfiguration(config, null); 
+0

Спасибо, я пробовал это, но мой язык устройства по-прежнему не меняется. Вместо этого изменяется локаль моего приложения. –

+0

Извините, я не понимаю вопроса. Мне нужно изменить язык моего устройства из моего приложения. –

+0

http://stackoverflow.com/questions/2596352/change-language-settings-locale-for-the-device -check this – Avijit

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()); 

Убедитесь, что он установлен в деятельности методом «OnCreate» перед вызовом метода «setContentView».

Также убедитесь, что файлы ресурсов указаны для требуемого языка.

+0

Нужно ли мне делать это для всех видов деятельности, которые у меня есть? –

+0

Это изменит локализацию вашей деятельности. Это не изменит локализацию устройства. – agomes

Смежные вопросы