码迷,mamicode.com
首页 > 其他好文 > 详细

setTag和findViewByTag的使用详解

时间:2015-08-07 14:53:25      阅读:2237      评论:0      收藏:0      [点我收藏+]

标签:settag和findviewbytag

在使用ListView或者GridView的时候, 如果想要在Aciviry中获取到Item中的子View,比较频繁的使用是:getChildAt(int position);


之前自己几乎不会去使用findViewByTag,因为用不需要使用。这次项目需要,使用到了ExpandableListView,上下级的IItem,而且自己定义了事件监听,但是事件监听方法的参数列表中没有专递ViewGroup parent和View convertView之类的参数,获取item中的view是行不通的。


这时就想到了setTag和findViewByTag,实现比较简单,如下代码:


一:在Adapter中的getView或者getRealChildView下,先找到mSwitch.icon = (ImageView) convertView.findViewById(R.id.swicon);

然后:mSwitch.icon.setTag("obj" + groupPosition + childPosition);    //setTag(Object object),这个object为任意对象,但是一定要保证其唯一性;


二:在Activity中,mIcon = (ImageView) listview.findViewWithTag("obj" + groupPosition + childPosition).findViewById(R.id.swicon);


于是就OK了!


关键代码:adapter中

mSwitch.icon = (ImageView) convertView.findViewById(R.id.swicon);
mSwitch.icon.setTag("obj" + groupPosition + childPosition);


activity中
mIcon = (ImageView) listview.findViewWithTag("obj" + groupPosition + childPosition).findViewById(R.id.swicon);


版权声明:本文为博主原创文章,未经博主允许不得转载。

setTag和findViewByTag的使用详解

标签:settag和findviewbytag

原文地址:http://blog.csdn.net/kern_/article/details/47337609

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!