有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (5) 个答案

  1. # 1 楼答案

    对于用户选择的语言-

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

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

    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. # 3 楼答案

    LocaleListCompat llc = ConfigurationCompat.getLocales(Resources.getSystem().getConfiguration());
    for (int i=0; i<llc.size(); i++){
        System.out.println(llc.get(i).getDisplayLanguage());
    }
    

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

    如果您想要支持的语言的完整列表,您将使用Locale获得它

        for (Locale locale : Locale.getAvailableLocales()) {
            System.out.println("HELLO " + locale.getDisplayLanguage());
        }
    
  3. # 4 楼答案

    科特林版本。这与(Shubham Agarwal Bhewanewala)的建议几乎相同。只有排序和第一个大写字母

    val language = ArrayList<String>()
    val llc = ConfigurationCompat.getLocales(Resources.getSystem().configuration)
    for (i in 0 until llc.size()) {
        
        language.add(llc[i].displayLanguage.substring(0,1).uppercase(Locale.getDefault()) + llc[i].displayLanguage.substring(1)
    
    }
    val set: Set<String> = HashSet(language)
    language.clear()
    language.addAll(set)
    language.sort()
    

    结果会是这样的:英语、法语、俄语、乌克兰语等等

  4. # 5 楼答案

    在Android 7.0(API级别24)及更高版本上,您应该调用^{}。在早期版本的Android上,只有选择一种语言的选项,您可以通过Locale.getDefault()获得