2012-04-26 12 views
1

だから、私はスピナーでそれを使用するには名前とidこの特定の方法でAndroidでのスピナーの使用方法は?

Gil 232 
Asty 2423 and so on. 

を持っているのArrayListを持って、私がやったことは、2つの別個の文字列のArrayListを作成することでした。 1つは名前を含み、もう1つは対応するIDを含む。だから、一度ユーザーが選択されると、私はその位置から対応するIDを取得します。

最後の部分の実行方法がわかりません。どのように位置を取得するのですか?>parent.getItemAtPosition(pos).toString(); これは私にもう一度名前を与えて、他のリストからIDを取得するために使用できるArrayList内の名前の位置ではありません。どうやってするの?そして、彼らにとってもっと良い方法はありますか?

+0

http://stackoverflow.com/questions/1625249/android-how-to-bind-spinner-to-custom-object-list – MKJParekh

答えて

1
public class User { 
    public int id; 
    public String name; 
} 

public class CustomAdapter extends ArrayAdapter<Data> implements Spinner 
                 .OnItemSelectedListener { 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent){ 
     LayoutInflater inflater = getLayoutInflater(); 
     View view = inflater.inflate(android.R.layout.simple_spinner_item, 
         parent, false); 
     Data data = getItem(position); 
     // Do something with data and view here 
     return view; 
    } 

    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, 
               int position, long arg4) { 
     Data data = getItem(position); 
     // Do something with data here 
    } 

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

} 

その後ArrayList<Data>を作成し、CustomAdapterで使用。

0

pos変数は、Spinnerから選択された項目の位置です。この位置を使用して、選択されている対応する名前のid(2番目のArrayListから)を取得できます。

代替として、あなたもHashMap<String,String> map を作成することができ、ユーザーがスピナーから値を選択する時期map.put(name,id);のような、そのマッププット値にあなたは名前selected.Andはその後、ID

like String id = map.get(selected_name); 
に対応する取得するにはマップを使用する必要があります

希望すると助かります。

関連する問題