2012-02-22 100 views
0

我試過這幾種不同的方式,所有的代碼都是打印出微調的最高值。Android微調只能選擇最大值

final String [] equipment=new String[]{//items 
    } 

ArrayAdapter<?> ad=new ArrayAdapter<Object>(this,android.R.layout.simple_spinner_item,equipment); 
ad.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
Spinner spin=(Spinner)findViewById(R.id.spinneritem); 
spin.setAdapter(ad); 

int position = spin.getSelectedItemPosition(); 
final String equipmentitem = equipment[position].toString(); 

從我可以告訴大家,應該能夠採取用戶已經選擇了數組的值,但是不管我在列表中選擇,它只能選擇第一項,而忽略實際選擇。

回答

0

您可能需要將偵聽器添加到微調器。

spin.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parentView, 
    View selectedItemView, int position, long id) { 
     equipmentitem = equipment[position].toString(); 

    } 
    @Override 
    public void onNothingSelected(AdapterView<?> parentView) { 
            } 
          }); 
+0

同意:'int position = spin.getSelectedItemPosition();'在微調控件創建後立即出現。這意味着它會一直抓住第一個索引。你想抓取索引後用戶選擇一個。因此,你需要一個監聽器。 – jmcdale 2012-02-22 18:06:40