我的Android应用中有2个语言的2个字符串文件, PT 和 EN 。但是我需要知道哪个是正在使用的字符串文件,因为我需要在我的SQLite数据库中添加当前正在使用的语言。
实际上,我使用此代码检测SQLite数据库中的当前语言,但此功能仅在用户在配置屏幕中手动更改语言时才有效。因为当用户第一次打开应用程序时,我不知道如何选择第一种语言。
if(!dbl.selectIni().getCurrent_lang().equalsIgnoreCase("system")){
String languageToLoad = dbl.selectIni().getCurrent_lang();
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
答案 0 :(得分:0)
您可以使用:
Locale.getDefault().getLanguage();
如果您想在用户更改设置语言时获取语言环境,请使用以下代码:
defaultLocale = Resources.getSystem().getConfiguration().locale;
无论为app / activity设置了哪个默认语言环境,它都会获得系统区域设置。 阅读https://developer.android.com/reference/android/content/res/Resources.html#getSystem%28%29
但请记住Resources.getSystem()
对系统资源的引用,如果使用incorrectly,可能会导致崩溃。
对于其他选项,您可以使用以下内容:
Locale current = getResources().getConfiguration().locale;
来自https://stackoverflow.com/a/14389640/4758255
请注意,这已在Configuration类中弃用,请参阅此建议的最新文档:locale This field was deprecated in API level 24. Do not set or read this directly. Use getLocales() and setLocales(LocaleList). If only the primary locale is needed, getLocales().get(0) is now the preferred accessor
。