首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取用户在其Android设备上启用的语言列表?

如何获取用户在其Android设备上启用的语言列表?
EN

Stack Overflow用户
提问于 2020-01-31 08:57:15
回答 5查看 1.1K关注 0票数 1

如何获取用户已添加到其设备的语言列表?在下面的示例中,用户转到设备设置并添加了两种语言。如何以编程方式获取此列表?

谢谢!

EN

回答 5

Stack Overflow用户

发布于 2020-01-31 13:28:27

代码语言:javascript
复制
LocaleListCompat llc = ConfigurationCompat.getLocales(Resources.getSystem().getConfiguration());
for (int i=0; i<llc.size(); i++){
    System.out.println(llc.get(i).getDisplayLanguage());
}

这与版本具有向后兼容性。而llc将拥有用户选择的所有语言。

如果您想要支持的语言的完整列表,您可以使用Locale获取

代码语言:javascript
复制
    for (Locale locale : Locale.getAvailableLocales()) {
        System.out.println("HELLO " + locale.getDisplayLanguage());
    }
票数 7
EN

Stack Overflow用户

发布于 2020-01-31 09:02:39

在Android7.0(API24级)及更高版本上,您应该调用LocaleList.getDefault()。在安卓的早期版本中,只有一种语言可以选择,你可以通过Locale.getDefault()获得。

票数 5
EN

Stack Overflow用户

发布于 2020-01-31 11:56:28

对于用户选择的语言-

代码语言:javascript
复制
private fun getSystemLocale(): String {
    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        return LocaleList.getDefault().get(0).getLanguage();
    } else {
        return Locale.getDefault.getLanguage();
    }
}

如果您想使用以下选项获取设备的选定语言:

代码语言:javascript
复制
Locale.getDefault().getDisplayLanguage();
Locale.getDefault().getLanguage()       ---> en      
Locale.getDefault().getISO3Language()   ---> eng 
Locale.getDefault().getCountry()        ---> US 
Locale.getDefault().getISO3Country()    ---> USA 
Locale.getDefault().getDisplayCountry() ---> United States 
Locale.getDefault().getDisplayName()    ---> English (United States) 
Locale.getDefault().toString()          ---> en_US
Locale.getDefault().getDisplayLanguage()---> English
Locale.getDefault().toLanguageTag()     ---> en-US
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59996630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档