安卓开发中View的setTag和getTag方法

当我们用到了ListView 或者其他类似的GroupView的时候,经常会用到adapter在桥接数据List和itemView,而其中在adapter的View getView(int position, View convertView, ViewGroup parent)方法中, View的setTag和getTag方法起着重要作用。

先看下案例:

[java]view plaincopy

@Override

public View getView(int position, View convertView, ViewGroup parent) {

// TODO Auto-generated method stub

ApkEntityentity = apk_list.get(position);

ViewHolder holder;

if (convertView == null) {

holder =newViewHolder;

convertView = inflater.inflate(R.layout.item_layout, null);

holder.name_tv = (TextView) convertView

.findViewById(R.id.item3_apkname);

holder.des_tv = (TextView) convertView

.findViewById(R.id.item3_apkdes);

holder.info_tv = (TextView) convertView

.findViewById(R.id.item3_apkinfo);

convertView.setTag(holder);

}else{

holder = (ViewHolder) convertView.getTag;

}

holder.name_tv.setText(entity.getName);

holder.des_tv.setText(entity.getDes);

holder.info_tv.setText(entity.getInfo);

return convertView;

}

Adapter有个getView方法,可以使用setTag把查找的view缓存起来方便多次重用。View中的setTag(Object)表示给View添加一个格外的数据,以后可以用getTag将这个数据取出来。如果只需要设置一个tag,那么直接调用setTag(Object tag)方法就可以轻松搞定,如果一定需要使用多个tag绑定,那么需要先在res/values/strings.xml中添加 使用的时候写成imageView.setTag(R.id.tag_first"Hello");imageView.setTag(R.id.tag_second"Success");就可以了取值的时候String tag_first=v.getTag(R.id.tag_first).tostring;就能取到值了!

更多文章请关注个人微博:@Lx_Rosen 微信公众号:U学问

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容