【发布时间】:2012-12-21 10:02:59
【问题描述】:
我有一个ArrayList 的自定义对象。此自定义对象包含 zoneCode(Integer) 和 zoneName(String),我想将此数据设置在 Spinner 中,以便 zoneName 进入列表和onItemSelected,我可以获得相应选择的 zoneCode。怎么可能?
【问题讨论】:
标签: android arraylist spinner android-arrayadapter
我有一个ArrayList 的自定义对象。此自定义对象包含 zoneCode(Integer) 和 zoneName(String),我想将此数据设置在 Spinner 中,以便 zoneName 进入列表和onItemSelected,我可以获得相应选择的 zoneCode。怎么可能?
【问题讨论】:
标签: android arraylist spinner android-arrayadapter
尝试 zoneCod.get(位置)
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int
position, long id) {
zoneCod.get(position);
}
}
【讨论】:
由于 zoneName 和 zoneCode 的数据都在数组列表中,并且您知道如何获取所选项目的位置。如果是,那么你可以得到 zoneCode 如下:
zoneCode[position];
【讨论】:
在您的自定义对象类中覆盖 toString 方法并使其返回 zoneName
class CustomObject{
public String zoneName;
public int zoneCode;
public String toString(){
return zoneName;
}
}
设置微调器
CustomObject[] objects = new CustomObject[10];
//initialize each object
ArrayAdapter<CustomObject> adapter = new ArrayAdapter<CustomObject>(this,android.R.layout.simple_spinner_item, objects);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
【讨论】: