2016-11-04 110 views
0

工作更改地区编程像下面,本地化不牛轧糖设备

Locale locale = new Locale("es"); 
     Locale.setDefault(locale); 
     Configuration config = new Configuration(); 
     config.locale = locale; 
     getBaseContext().getResources().updateConfiguration(config, 
       getBaseContext().getResources().getDisplayMetrics()); 

     Resources.getSystem().updateConfiguration(config, null); 

是不工作的牛轧糖的设备,当我们从一个活动切换到另一个

+0

在其他设备中,它从一个活动切换到另一个时运行良好吗? – Piyush

+0

是的..它工作正常..只有牛轧糖设备我遇到这个问题 – Vennila

+0

我启动webview时有类似的问题。这里是完整的解决方案的问题http://stackoverflow.com/questions/40486932/android-nougat-7-1-resets-locale-after-launching-webview –

回答

1

牛轧糖它会自动切换到英语已经过时config.locale。改用setLocales()。

Configuration config = activity.getBaseContext().getResources().getConfiguration(); 

Locale locale = Utils.stringToLocale(stringLanguage); 
Locale.setDefault(locale); 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 
     config.setLocales(new LocaleList(locale)); 
} else { 
     config.locale = locale; 
} 
activity.getBaseContext().getResources().updateConfiguration(config, 
      activity.getBaseContext().getResources().getDisplayMetrics()); 
相关问题