如何按值设置Spinner的选定项目,而不是按位置设置

时间:2014-11-25 08:45:42

标签: android xml android-spinner

<item value="245">Guinea-Bissau [245]</item >
<item value="592">Guyana [592]</item >
<item value="509">Haiti  [509]</item >
<item value="504">Honduras [504]</item >
<item value="91">India [91]</item >
<item value="62">Indonesia [62]</item >
  

我正在使用此

country.setOnItemSelectedListener(new OnItemSelectedListener() {

    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

        // TODO Auto-generated method stub
        //selectioncountry = parent.getItemAtPosition(position).toString();
        selectionarea = parent.getItemIdAtPosition(position);
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {

        // TODO Auto-generated method stub          
    }
});
  

这段代码给出了印度的价值是4但我需要91我该怎么办   这个???

5 个答案:

答案 0 :(得分:8)

private void selectSpinnerValue(Spinner spinner, String myString)
     {
         int index = 0;
         for(int i = 0; i < spinner.getCount(); i++){
             if(spinner.getItemAtPosition(i).toString().equals(myString)){
                 spinner.setSelection(i);
                 break;
             }
         }
     }

答案 1 :(得分:3)

试试这个。它会正常工作。

int position = adapter.getPosition(value);
spinner.setSelection(position);

答案 2 :(得分:1)

您必须再为选定的国家/地区值添加一个字符串数组:

<string-array name="country">
   <item>India</item>
</string-array>

<string-array name="country_value">
  <item>91</item>
</string-array>

初始化值数组:

String[] countryValue = getResources().getStringArray(R.array.country_value);

从值数组中获取微调器选定项的相应值:

selectionarea = countryValue[position];

检查示例:accessing item name in string-array (Android)

答案 3 :(得分:0)

for(int i = 0; i < country.getCount(); i++){
    if(country.getItemAtPosition(i).toString().equals("yourString")){
        country.setSelection(i);
        break;
    }
}

您也可以通过这种方式解决问题,方法是指定您正在搜索的String,如果您有权访问它。否则,你将不得不遵循Harish Chhelana的方法。

答案 4 :(得分:0)

您始终可以覆盖getItemId(int position)以返回值,而不是默认位置ID