1

だから、私は名前とIDを持つArrayListを持っています

Gil 232
Asty 2423 and so on. 

スピナーでそれを使用するために、私がしたことは、2つの別々の文字列配列リストを作成することでした。1つには名前が含まれ、もう1つには対応するIDが含まれます。したがって、ユーザーが選択されると、その位置から対応するIDを取得します。

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

4

2 に答える 2

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

于 2012-04-26T12:38:47.220 に答える
0

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

別の方法として、を作成しHashMap<String,String> map 、そのマップに次のような値を入力することもできます。map.put(name,id);ユーザーがスピナーから値を選択すると、名前が選択されます。次に、マップを使用して対応するIDを取得します。

like String id = map.get(selected_name);

それがお役に立てば幸いです。

于 2012-04-26T14:34:31.133 に答える