【发布时间】:2011-06-08 15:30:35
【问题描述】:
你好 我需要获取在 Android 设备上定义的语言列表,并希望使用语言代码和语言名称填充 Spinner。我该怎么做?
提前致谢和问候 c.
【问题讨论】:
-
“在 Android 设备上定义”是什么意思?你的意思是可能的语言环境吗? (如en-rUS、fr-rFR等)
标签: android localization internationalization
你好 我需要获取在 Android 设备上定义的语言列表,并希望使用语言代码和语言名称填充 Spinner。我该怎么做?
提前致谢和问候 c.
【问题讨论】:
标签: android localization internationalization
我也遇到过同样的问题。我已经弄清楚如何在
中定义语言环境phone settings -> system -> languages and input
科特林
val locales = Resources.getSystem().configuration.locales
这从 API 24 开始有效。
【讨论】:
public static List<String> getLanguages() {
String[] locales = Resources.getSystem().getAssets().getLocales();
List<String> list = new ArrayList<>();
for (Locale locale : Locale.getAvailableLocales()) {
if (locale.getLanguage().length() == 2) {
if (!isLanguageInList(list, locale)) {
list.add(locale.getDisplayLanguage());
}
}
}
Collections.sort(list);
return list;
}
private static boolean isLanguageInList(List<String> list, Locale locale) {
if (list == null) {
return false;
}
for (String item: list) {
if (item.equalsIgnoreCase(locale.getDisplayLanguage())){
return true;
}
}
return false;
}
【讨论】:
用途:
Resources.getSystem().getAssets().getLocales();
【讨论】:
【讨论】: