2014-11-25 68 views
1
<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   
    } 
}); 

這個代碼給印度的thie值是4,但我需要91怎麼樣我可以做 這個嗎?

+0

檢查:http://stackoverflow.com/questions/27057400/accessing-item-name-in-string-array-android/27057930#27057930 – 2014-11-25 08:48:35

回答

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]; 

檢查考試PLE:accessing item name in string-array (Android)

+0

很樂意幫助你。 – 2014-11-28 12:39:07

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

您還可以通過這種方式解決它,通過specifiying的String您正在搜索,而不是如果你有機會獲得它。否則,你將不得不遵循Haresh Chhelana的方法。

2

試試這個的。它會正常工作。

int position = adapter.getPosition(value); 
spinner.setSelection(position); 
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; 
      } 
     } 
    } 
+0

最終答案。 – Bee 2016-10-19 14:51:26

相關問題