1.创建信息类,用来存取键值对信息
package com.cclsol.gainmap.bean;
public class GetStation {
private String stationId;
private String stationName;
public GetStation(){
}
public GetStation(String stationId, String stationName) {
super();
this.stationId = stationId;
this.stationName = stationName;
}
public String getStationId() {
return stationId;
}
public void setStationId(String stationId) {
this.stationId = stationId;
}
public String getStationName() {
return stationName;
}
public void setStationName(String stationName) {
this.stationName = stationName;
}
@Override
public String toString() {// 这是关键
// 为什么要重写toString()呢?因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString()
// TODO Auto-generated method stub
return stationName;
}
}
2.activity类,绑定动态数据,并获取选中的键值对信息
private void getStation() {
WebService.callWebService(WebService.WEB_SERVER_URL,
"getStationforNoXY", null, new WebServiceCallBack() {
@Override
public void callBack(SoapObject result) {
// TODO Auto-generated method stub
if (result != null) {
SoapObject soregionObject = (SoapObject) result
.getProperty("getStationforNoXYResult");
Log.i("juan", soregionObject.toString());
jiexiRegion(soregionObject);
}
}
});
}
/**
* 解析数据,渲染到下拉框中
*
* @param soapObject
*/
private void jiexiRegion(SoapObject soapObject) {
List<GetStation> stationlist = new ArrayList<GetStation>();
for (int i = 0; i < soapObject.getPropertyCount(); i += 2) {
stationlist.add(new GetStation(
soapObject.getProperty(i).toString(), soapObject
.getProperty(i + 1).toString()));
}
Log.i("juan", "stationlist" + stationlist.toString());
ArrayAdapter<GetStation> station = new ArrayAdapter<GetStation>(this,
android.R.layout.simple_spinner_item, stationlist);
station.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
StationSpinner.setAdapter(station);
StationSpinner.setSelection(0, true);
StationSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
// TODO Auto-generated method stub
Toast.makeText(
UploadDialog.this,
"键:"
+ StationSpinner.getSelectedItem().toString()
+ "、"
+ ((GetStation) StationSpinner
.getSelectedItem()).getStationId()
+ ",值:"
+ ((GetStation) StationSpinner
.getSelectedItem()).getStationName(),
Toast.LENGTH_LONG).show();
myStationID = ((GetStation) StationSpinner.getSelectedItem())
.getStationId();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
Toast.makeText(UploadDialog.this, "未选择", Toast.LENGTH_SHORT)
.show();
}
});
}