【问题标题】:How to get languages list in Android如何在 Android 中获取语言列表
【发布时间】:2011-06-08 15:30:35
【问题描述】:

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

提前致谢和问候 c.

【问题讨论】:

  • “在 Android 设备上定义”是什么意思?你的意思是可能的语言环境吗? (如en-rUS、fr-rFR等)

标签: android localization internationalization


【解决方案1】:

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

中定义语言环境

phone settings -> system -> languages and input

科特林

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

这从 API 24 开始有效。

【讨论】:

    【解决方案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;
    }
    

    【讨论】:

      【解决方案3】:

      用途:

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

      【讨论】:

      • 您应该添加链接文章的基本部分,以防止您的答案被删除。
      【解决方案4】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-17
        相关资源
        最近更新 更多