如何设置spinnerlist的默认值

时间:2014-09-08 13:41:01

标签: android locale

在Android中我从网上获取json数据。我的列表就像{Name,dial,code}

我有这个

countryinfo = new ArrayList<CountryInfo>();
        Countrylist = new ArrayList<String>();
            try {           
                for (String line : result) {
                jsonarray= new JSONArray(line);
            for (int i = 0; i < jsonarray.length(); i++) {
                jsonobject = jsonarray.getJSONObject(i);
                CountryInfo conpop = new CountryInfo();
                conpop.setName(jsonobject.optString("Name"));
                conpop.setIso(jsonobject.optString("dial"));
                conpop.setItu(jsonobject.optString("code"));
                countryinfo.add(conpop);
                Countrylist.add(jsonobject.optString("Name"));
                }
                }
        } catch (Exception e) {
            //Log.e("Error", e.getMessage());
            e.printStackTrace();
        }

我用

Spinner mySpinner = (Spinner) findViewById(R.id.spinner1);

             ArrayAdapter<String> adapter = new ArrayAdapter<String>(MobnoAct.this, android.R.layout.simple_spinner_item, Countrylist);  
                            mySpinner.setAdapter(adapter); 
              mySpinner.setSelection(0);

但是在微调器中它显示了一个默认的国家名称..但我想要的国家名称将按照语言环境进行。 喜欢: -

Locale defaultLocale = getResources().getConfiguration().locale;
               String si=defaultLocale.getCountry();

我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

设置适配器并检索默认本地后尝试此操作:

 for(String countryName : countryList)
            for(CountryInfo country : countryinfo)
                if(country.getName().equals(countryName) && country.getCode().toLowerCase().equals(si.toLowerCase()))
                    mySpinner.setSelection(adapter.getPosition(countryName));

希望这有帮助