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

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

安卓开发中View的setTag和getTag方法_第1张图片

先看下案例:

[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学问

你可能感兴趣的:(安卓开发中View的setTag和getTag方法)