关于View.setTag()和View.getTag()结合使用的例子很多,Google, stackoverflow上面一堆,就不再赘述了,随便一搜就有。
经典的使用例子:
三部分:视图初始化、保存内容、取得内容
private ImageView mThumbIv;
mThumbIv = (ImageView) itemView.findViewById(R.id.image);
//使用tag存放View对应在适配器数据集中的位置参数
if (null == mThumbIv) return;
mThumbIv.setTag(position);
//从tag中取出位置参数
int position = (int) v.getTag();
重点来了:
View的tag最经典的例子是用来保存在适配器数据集中的位置参数,也是使用最多的场景,那么跟数据适配器配合使用时最好只用来保存位置参数。
为什么这么说呢?
1. 先看tag的作用:
public Object getTag()
public void setTag(final Object tag)
我们看到,tag 保存的是Object 对象(意味是可以保存同View有关的任何数据,只要你想), 那么你不仅仅可以保存int position, 你还可以保