view.setTag()的正确使用姿势

本文详细介绍了如何使用view.setTag()和view.getTag()在Android开发中进行数据传递,包括如何为view设置多个tag,以及如何正确设置和获取tag。通过在res/values/ids.xml中定义资源id,可以确保key的唯一性,避免异常。同时,文章还提到了这两种方法可以同时使用,它们的值不会冲突,因为它们存储在不同的数据结构中。
摘要由CSDN通过智能技术生成

view.setTag()的正确使用姿势

开发中,我们经常要进行数据的传递,会使用到view.setTag()和view.getTag()方法,主要用在view的点击事件中,可以让数据跟着view走,这种方法很方便。一般情况下给view设置一个tag就够用了,某些情况下我们需要给一个view设置多个tag,在需要的时候再分别取出来,这就需要用到view.setTag()的一个重载方法view.setTag(int key,final Object Tag)了。

在view.setTag(key)方法的注释里面有这么一句:

The specified key should be an id declared in the resources of the
* application to ensure it is unique …
@throws IllegalArgumentException If they specified key is not valid

意思是说key必须是个唯一的资源id,就会报错。

好了,注意事项说完了,接下来该使用了。

①定义id,res/values/ids.xml文件下定义需要的id:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- 使用tag传递数据。 -->
    <item name="tag_txt_more_news" type="id"/>
    <item name="tag_txt_more_announce" type="id"/>
    <item name="tag_txt_more_report" type="id"/>
</resources>

②settag,添加数据

txMoreNews.setTag(R.id.tag_txt_more_news, newsCount)

③gettag获取数据并使用

int count = (int) v.getTag(R.id.tag_txt_more_news);

另外,view.setTag()/getTag()方法和view.setTab(key,value)/getTag(key)方法可以同时使用,他们的值不会冲突,view.setTag()添加的值是存在View对象的一个Object类型的成员变量里,而通过key添加的数据是存在一个SparseArray里面,他们的值不会发生冲突.

做下总结,希望可以帮到你。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值