永发信息网

Android开发,spinner处理和调用函数的问题

答案:2  悬赏:0  手机版
解决时间 2021-02-14 11:36
我从webservice返回一组数据,比如{ {Name = 瓷砖,item_code = 1111},{Name = 灯具,item_code =2222}},,我需要做一个下拉菜单,将他们的名字(Name)显示出来,但同时又要根据选择(selected)不同,要将他们的item_code作为参数传出来,传递给下一个方法调用,我应该怎样处理,求大神支招啊,万分感谢
最佳答案
其实实现方式有很多,我之前从网上学到一种取巧的办法,你可以试下。


首先定义这么一个类,作用类似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) {}

});
全部回答
整个一条数据用一个id, 再去摘
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
广林村地址在哪,我要去那里办事
手机摔过以后会变卡吗???
哈尔滨银行24小时自助银行(群力支行)地址有知
67岁的村民老王,丧偶,身患疾病丧失劳动能力
遗嘱撕毁亲戚相争怎么办
大树湾村地址在什么地方,我要处理点事
皇小鸡这个地址在什么地方,我要处理点事
若四边形ABCD的对角线AC,BD相交于点O,且OA=OB
感冒后,头疼,咳嗽,咳嗽的时候头会痛,怎么
我想让我的电脑CPU的性能发挥到最高有什么办
下面图一为人体手背皮肤(A)接受一定刺激后引
《洛洛历险记》有什么绝招?
今天出门遇到贵人,朋友圈怎么表达
龙人花木基地这个地址在什么地方,我要处理点
古今中外,无论是东方古国,或是近代西方国家
推荐资讯
急开锁换锁芯锁芯升级地址在哪,我要去那里办
上个星期骑摩托摔了一跤,屁股好痛,其他没伤
陶朱南路/浣纱横路(路口)地址有知道的么?有
直线轴承scs16luu与sc16luu有什么不同
玉光村地址有知道的么?有点事想过去
普通的油漆笔涂在玩具上的粘力好,还是玩具专
向HCl和FeCl3的混合溶液中不断加入NaOH溶液至
陌生人怎么可以通过qq发消息且知道我的名字
请问根号7的值可以是7吗?
陕西汉中那里有学电脑程序的学校
三亚吃海鲜贵不贵啊 万能的吧友求大概价格表
广州坐火车去云南普者黑在那个站下车
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?