xi_de 2018-01-31 05:42 采纳率: 13%
浏览 3622
已采纳

android listview点击显示文本获取文本对应的ID 值

本人刚接触android,现在有一个android listview点击显示文本获取文本相对应文本的ID值,我放了一个隐藏的textview,但是总是报错。现在没有思路不知道该怎么做这个,如果有相类似的实践demo能推荐一个最好。
图片说明

  • 写回答

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");
    

    希望能够帮助到你!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

悬赏问题

  • ¥15 java 判断某个数 区间是否存在
  • ¥15 appium控制多个雷电模拟器问题
  • ¥15 C# iMobileDevice
  • ¥15 谁会做这个啊#ensp#Boson NetSim
  • ¥15 如何编写针对TPS6503320FRGE型号的电源管理芯片的编程代码?
  • ¥15 设计简单目录管理系统,要满足以下内容
  • ¥15 关于九十度混合耦合器信号分析问题
  • ¥15 Cesm如何关闭不用的模块呢
  • ¥15 vue2两层数据导出为excle
  • ¥15 有人能帮我做一下这个项目吗