Locale在Android中返回空字符串

问题描述 投票:2回答:1

我正在开发一个Android应用,并且需要根据用户的语言环境国家(地区)进行某些更改。

我找到了一个正式的link,但我试图获得一个语言环境,但它返回的是空字符串。

这是我尝试过的代码,但我将所有字符串作为一个空字符串:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            String localeCountry = LocaleList.getDefault().get(0).getDisplayCountry();
            String localeISO3Country = LocaleList.getDefault().get(0).getISO3Country();
            String locale = getResources().getConfiguration().getLocales().get(0).getCountry();
            String locale1 = getResources().getConfiguration().getLocales().get(0).getDisplayCountry();
            String locale2 = getResources().getConfiguration().getLocales().get(0).getDisplayVariant();
        }else {
            Locale current = getResources().getConfiguration().locale;
            String currentCc = getResources().getConfiguration().locale.getCountry();
            String iso3Country = getResources().getConfiguration().locale.getISO3Country();
            String cCode = Locale.getDefault().getCountry(); 
        }

我也尝试过toString()方法,但是它返回的是我唯一的语言,但是根据文档,它应该返回包括语言和国家/地区的值。

这是我的代码:

String toString = getResources().getConfiguration().getLocales().toString();
in Log it printed only language: 
[en] 

我想念什么吗?

android locale
1个回答
0
投票

我回答这个问题为时已晚,但是我正在发布我的答案,因此对其他人可能会有帮助。

根据文档,如果您的国家/地区语言不支持,那么您的locale.toString方法将返回空或空字符串。

这里是官方网站link

© www.soinside.com 2019 - 2024. All rights reserved.