Spinner绑定键值对信息
2016-07-18 14:23
246 查看
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();
}
});
}
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();
}
});
}
相关文章推荐
- 欢迎使用CSDN-markdown编辑器
- openjudge3344 冷血格斗场 解题报告
- (原)ubuntu14手动安装matplotlib1.5
- @weakify和@strongify
- linux Centos7安装mysql
- Sine之舞
- java map to json
- Spring学习笔记2之表单数据验证、文件上传实例代码
- Arch使用过程中出现的问题汇总
- C++相对路径转换为绝对路径和linux、window移植api
- 提高开发效率----as插件(持续更新)
- pdf转换成图片格式的两种方法
- python学习笔记:extend和apend;strip,split,filter,map
- iOS中的动画
- 虚拟机an error occurred during the file system check解决办法
- UVA 455-Periodic Strings
- ubutnu下tomcat配置
- [MySQL]IP处理函数inet_aton()和inet_ntoa()
- android之版本控制Git+Tortoisegit安装具体步骤(win7)
- 2、Zookeeper集群搭建、命令行Client操作