Android开发,spinner处理和调用函数的问题
答案:2 悬赏:0 手机版
解决时间 2021-02-14 11:36
- 提问者网友:那叫心脏的地方装的都是你
- 2021-02-14 02:12
我从webservice返回一组数据,比如{ {Name = 瓷砖,item_code = 1111},{Name = 灯具,item_code =2222}},,我需要做一个下拉菜单,将他们的名字(Name)显示出来,但同时又要根据选择(selected)不同,要将他们的item_code作为参数传出来,传递给下一个方法调用,我应该怎样处理,求大神支招啊,万分感谢
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-02-14 03:44
其实实现方式有很多,我之前从网上学到一种取巧的办法,你可以试下。
首先定义这么一个类,作用类似Map那种键值对(get/set方法加不加都行)
class Item{
public String key;
public String value;
public void Item(String key, String value){
this.key = key;
this.value = value;
}
//重写toString方法,关键
public String toString(){
//返回的是你表面上想显示的值
return key;
}
}
然后就是一一实例化Item并赋值,在装进一个ArrayList- , 以你这个情况举例,就是
ArrayList- array = new ArrayList
- ();
array.add(new Item("瓷砖",1111));
array.add(new Item("灯具",2222));剩下就和平时一样,把ArrayAdapter与这个ArrayList绑定,再把Spinner和ArrayAdapter绑定就行,最后显示出的就是key的值。而要获得value的值也很简单,监听事件里这么写就行
Spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> arg0, View arg1,int arg2, long arg3) {
//获取key
array.get(arg2).name;
//获取value
array.get(arg2).value;
}
public void onNothingSelected(AdapterView> arg0) {}
});
首先定义这么一个类,作用类似Map那种键值对(get/set方法加不加都行)
class Item{
public String key;
public String value;
public void Item(String key, String value){
this.key = key;
this.value = value;
}
//重写toString方法,关键
public String toString(){
//返回的是你表面上想显示的值
return key;
}
}
然后就是一一实例化Item并赋值,在装进一个ArrayList
ArrayList
array.add(new Item("瓷砖",1111));
array.add(new Item("灯具",2222));剩下就和平时一样,把ArrayAdapter与这个ArrayList绑定,再把Spinner和ArrayAdapter绑定就行,最后显示出的就是key的值。而要获得value的值也很简单,监听事件里这么写就行
Spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> arg0, View arg1,int arg2, long arg3) {
//获取key
array.get(arg2).name;
//获取value
array.get(arg2).value;
}
public void onNothingSelected(AdapterView> arg0) {}
});
全部回答
- 1楼网友:不甚了了
- 2021-02-14 05:22
整个一条数据用一个id, 再去摘
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯