如何在Android中获取语言列表

6
你好,我需要获取安卓设备上定义的语言列表,并将语言代码和语言名称填充到下拉菜单中。请问如何实现?
谢谢您的帮助。
c.

“defined on an Android device” 是什么意思?您只是指可能的语言环境吗?(例如 en-rUS,fr-rFR 等) - Kevin Dion
4个回答

2

使用:

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

1
你应该添加链接文章的必要部分,以防止你的回答被删除。 - CSchulz

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

1

0
我也遇到了同樣的問題。我已經找到了如何在手機設置中定義區域設置的方法。
kotlin
val locales = Resources.getSystem().configuration.locales

这个可以在API 24及以上版本中正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接