【问题标题】:How to take country_iso_code from selected country name from the spinner android如何从微调器 android 中选择国家名称中的 country_iso_code
【发布时间】:2016-01-19 01:24:50
【问题描述】:

我有一个微调器,我从中选择国家名称并将其保存为字符串以通过 JSON 对象传递。

我也想以同样的方式传递国家/地区 ISO 代码,那么如何从我选择的国家/地区名称中获取国家/地区 ISO 代码?

我试过这个,但给了我运行时异常,它不能将 String 转换为 Locale

String countryName = mSpinner.getSelectedItem().toString();
if (mSpinner.getSelectedItemId() == 0) 
    Toast.makeText(MyClass.this, "select ur country", Toast.LENGTH_LONG).show();
if (mSpinner.getSelectedItemId() != 0)
    Toast.makeText(MyClass.this, countryName +" is your selected country",
            Toast.LENGTH_LONG).show();

Locale cName = (Locale) mSpinner.getSelectedItem(); //exception occurs here...
String countryCode = cName.getCountry();

由于我无法从字符串 countryName 中获取国家/地区代码,我再次将所选项目作为语言环境对象,但我收到异常消息:

java.lang.ClassCastException: java.lang.String 无法转换为 java.util.Locale

【问题讨论】:

    标签: android android-intent android-activity android-spinner


    【解决方案1】:

    您使用国家名称作为国家代码来获取语言环境。所以得到错误:

    Locale cName = (Locale) mSpinner.getSelectedItem(); //exception occurs here...
    

    java.lang.ClassCastException: java.lang.String 无法转换为 java.util.Locale

    Locale 将国家代码作为参数:

    Locale loc = new Locale("", countryCode);
    

    你可以试试这样的:

    String[] locales = Locale.getISOCountries();
    
    Locale locale;
    
    for (String countryCode : locales) {
    
        locale = new Locale("", countryCode);
    
        if(locale.getDisplayCountry().equals(cName){
            countryCode = locale.getCountry();
            break;
    
        }
    }
    

    【讨论】:

    • 您好伊薇特女士....我按照您所说的代码进行了更改...我面临一个小问题您能找到我遗漏的地方...我希望描述清楚..!
    • 感谢您的指导....下次我会记住这一点..回到我的问题我遇到的问题是在选择一个国家并执行休息之后;声明我的 countryCode 值没有得到持续......我在调试模式下观察到了这一点..如何让它保持它的价值?因为我必须在国家名称旁边将其作为 JSON 对象传递
    • stackoverflow.com/questions/34930290/… 感谢您的指导 这是新问题,简要描述了持续价值问题...希望这会有意义....等待回复...提前谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    相关资源
    最近更新 更多