我使用这段代码在多语言应用程序中手动设置默认语言:
public static void setLanguage(Context context, String languageCode){
Locale locale = new Locale(languageCode);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale; // Deprecated !!
context.getApplicationContext().getResources().updateConfiguration(config,
context.getResources().getDisplayMetrics());
}
现在我们无法通过config.locale设置语言区域,因为该变量将在API 24中被删除,已弃用。
所以我看到的替代方法是设置:
config.setLocales();
locale
API等级1中添加
Locale locale
此字段已在API级别24中过时。不要直接设置或读取此字段使用getLocales()和setLocales(LocaleList)。如果只需要主要语言环境,则现在首选访问器为getLocales().get(0)。
当前用户对于语言环境的首选项,对应于语言环境资源限定符。
我还注意到,对于API 17及以上版本,也有setLocale(Locale)
。
我检查了setLocales(LocalList)文档,并标记为灰色,好像它也已过时!
那么解决方案是什么呢?