ListView集合中设置标记 setTag();方法带一个参数和两个参数的区别,以及设置标记时ViewHolder中的每一个属性控件都需要设置一次,否则在Item中每一个控件的点击事件中取出设置的标

本文详细解析了ListView中setTag方法的使用技巧,包括单参数与双参数形式的区别,如何正确设置ViewHolder中的标记以避免空指针异常,并强调了在strings.xml中定义键值的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ListView集合中设置标记 setTag();方法带一个参数和两个参数的区别;以及设置标记时ViewHolder中的每一个属性控件都需要设置一次,否则在Item每一个控件的点击事件中取出设置的标标记时会报空指针异常。

1、setTag(Object  tag); 带一个参数的方法,相信大家都明白,没什么好讲的,设置时对应ViewHolder的每一个控件一一设置就可以了;

         2、setTag(int key,Object tag);带两个参数的方法,第一个参数键值,是唯一的,不能任意的写一个int 类型的数,它的值必须在 Values ——>strings.xml文件中进行定义,定              义格式如下:

    <!--GroupListFragment为setTag添加键值-->
    <item type="id" name="tag_first"></item>
    <item type="id" name="tag_btnRemove"></item>
    <item type="id" name="tag_customSwitch"/>
         然后在设置标记时就可以如下使用了:

   holder.btnRemove.setTag(R.id.tag_btnRemove,i); 

 在取出设置的标记时根据键值取出如下:
   
   view.getTag(R.id.tag_btnRemove);    设置的时候ViewHolder中的每一个属性都要一一设置,否则取出设置的标记时会报空指针异常;这两个天坑都耽误了我好长的时间:一个是没有对ViewHolder中的每一个属性一一设置标签,只是用其中的某一个属性进行设置,结果空指针就出来啦,第二个是在使用带两个参数的setTag方式时,键值就随便的弄了一个整数,结果也报了一大堆的错误。                     真心的希望你们遇到此类问题时能有所帮助,不要在浪费那么的时间了。

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值