當我們用到了ListView 或者其他類似的GroupView的時候奴拦,經(jīng)常會用到adapter在橋接數(shù)據(jù)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添加一個格外的數(shù)據(jù)藏姐,以后可以用getTag將這個數(shù)據(jù)取出來。如果只需要設(shè)置一個tag该贾,那么直接調(diào)用setTag(Object tag)方法就可以輕松搞定羔杨,如果一定需要使用多個tag綁定,那么需要先在res/values/strings.xml中添加 使用的時候?qū)懗蒳mageView.setTag(R.id.tag_first"Hello");imageView.setTag(R.id.tag_second"Success");就可以了取值的時候String tag_first=v.getTag(R.id.tag_first).tostring;就能取到值了杨蛋!
更多文章請關(guān)注個人微博:@Lx_Rosen 微信公眾號:U學問