如何在Android中获取语言列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Android中获取语言列表相关的知识,希望对你有一定的参考价值。

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

在此先感谢和问候c。

答案

只需使用Locale.getAvailableLocales()

另一答案

使用:

Resources.getSystem().getAssets().getLocales();
另一答案
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;
}

以上是关于如何在Android中获取语言列表的主要内容,如果未能解决你的问题,请参考以下文章

如何从Android片段中的相机获取图像

Android - 如何显示包含从片段中获取的字符串的快餐栏

如何使列表视图出现在片段中?

如何在片段中填充列表视图?

如何在片段内的 recylerview 列表中显示 SQLite 数据库数据?

Android片段中的问题:仍然单击上一个片段