2012-02-22 11 views
0

私はこれをいくつかの方法で試しましたが、すべてのコードはスピナーの最高値を表示します。Android Spinnerはトップ値のみを選択します

私は、ユーザーが選択した列の値を取ることができるはず伝えることができますが、私は、リストで選択した内容に関係なく、それが唯一の最初の項目を選択して、実際のを無視して何から
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

関連する問題