本人刚接触android,现在有一个android listview点击显示文本获取文本相对应文本的ID值,我放了一个隐藏的textview,但是总是报错。现在没有思路不知道该怎么做这个,如果有相类似的实践demo能推荐一个最好。
android listview点击显示文本获取文本对应的ID 值
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
10条回答 默认 最新
- brave_shine 2018-01-31 07:31关注
你问的不太清楚,如果贴有代码更好回答一点。
现在按我的理解的话,不知道你已经走到哪一步了,就说一下步骤吧:
1、从后台获取数据,这个应该是完成了;
2、把得到的数据转换成JavaBean,如果字段很少的话,你也可以用HashMap键值对保存,添加到集合mList中。
3、创建adapter,把第二步得到的集合mList传入adapter,把adapter设置到listview;
(如果是在初始化的时候创建设置好了,这一步就是刷新数据了)
4、设置点击事件,你可以在页面中设置使用listview的setOnItemClickListener方法,
也可以在条目布局点击的控件上加上id,然后在adapter的getView方法里通过findViewById找到该控件,
在这个控件上设置setOnClickListener方法。
5、在第四步的两种方法中,都可以根据索引position使用集合mList的get(position)方法获取到点击条目的数据,ID自然也在其中。
按以上五步肯定能找到你要的,但是看你截的图,感觉你是布局写错了,数据也传错了
把ID(110404)跟名字(A区成都市区张军(现金))都当作单独的一个条目了
如果是这样,那按情况说一下:
a.你就是要ID和名字展示,条目布局应该是这样的
b.如果是只展示名字,那布局就没有错了
但是不管哪种,传的数据肯定是错了,应当把ID和名字关联起来private ArrayList<HashMap<String, String>> mList = new ArrayList<>(); //请求获取到数据后 mList.clear(); //在for循环中 HashMap<String, String> map = new HashMap<>(); map.put("id", "110404"); map.put("name", "A区成都市区张军(现金)"); mList.add(map); //循环执行完 //设置adapter或刷新adapter
这样在adapter中mList.get(position)获得的就是一个map集合;
HashMap<String, String> map = mList.get(position); //获得ID String id = map.get("id"); //获得名字 String name = map.get("name");
希望能够帮助到你!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 给我一个openharmony跑通webrtc实现视频会议的简单demo项目,sdk为12
- ¥15 vb6.0使用jmail接收smtp邮件并另存附件到D盘
- ¥30 vb net 使用 sendMessage 如何输入鼠标坐标
- ¥15 关于freesurfer使用freeview可视化的问题
- ¥100 谁能在荣耀自带系统MagicOS版本下,隐藏手机桌面图标?
- ¥15 求SC-LIWC词典!
- ¥20 有关esp8266连接阿里云
- ¥15 C# 调用Bartender打印机打印
- ¥15 我这个代码哪里有问题 acm 平台上显示错误 90%,我自己运行好像没什么问题
- ¥50 C#编程中使用printDocument类实现文字排版打印问题