如何在Android中获取语言列表

时间:2011-01-13 17:04:12

标签: android localization internationalization

您好 我需要获取Android设备上定义的语言列表,并希望使用语言代码和语言名称填充Spinner。我怎么能这样做?

提前致谢和问候 角

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

使用:

Resources.getSystem().getAssets().getLocales();

答案 2 :(得分:0)

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;
}

答案 3 :(得分:0)

我遇到了同样的问题。我已经弄清楚如何在

中定义区域设置

phone settings -> system -> languages and input

科特林

val locales = Resources.getSystem().configuration.locales

从 API 24 开始就可以使用了。