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

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

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里面,他们的值不会发生冲突.

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

相关文章
|
安全
Fragment里面有ViewPager,ViewPager里面又嵌套Fragment,刚遇到的一个坑
Fragment里面有ViewPager,ViewPager里面又嵌套Fragment,刚遇到的一个坑
|
Android开发 容器
深入了解View的滑动冲突
在《与滑动冲突的首次邂逅》一文中,笔者举了一个开发过程中出现的一个简单的滑动冲突问题,带大家直观的了解何为滑动冲突,并且使用了内部拦截法(内部解决法)来解决了这个滑动冲突。
深入了解View的滑动冲突
|
Android开发
RecyclerView + SnapHelper实现炫酷ViewPager效果
目录 什么是SnapHelper SnapHelper是Google 在 Android 24.2.0 的support 包中添加的对RecyclerView的拓展,结合RecyclerView使用,能很方便的做出一些炫酷的效果。
5346 0
|
容器 数据安全/隐私保护 JavaScript
View组件
一、使用方法 view组件是最常用的,也是最简单的视图容器。它是一个块级容器组件,它没有特殊的功能,主要用于布局展示,是布局中最基本的UI组件。几乎所有复杂的布局都可以通过嵌套view来实现。 view除了公共属性之外,还有以下几个私有属性 属性名 类型 默认值 说明hover-.
2956 0
|
前端开发 Java Spring
|
前端开发 Java Spring

热门文章

最新文章