安卓開發(fā)中View的setTag和getTag方法

當(dāng)我們用到了ListView 或者其他類似的GroupView的時(shí)候,經(jīng)常會(huì)用到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有個(gè)getView方法,可以使用setTag把查找的view緩存起來(lái)方便多次重用。View中的setTag(Object)表示給View添加一個(gè)格外的數(shù)據(jù),以后可以用getTag將這個(gè)數(shù)據(jù)取出來(lái)。如果只需要設(shè)置一個(gè)tag,那么直接調(diào)用setTag(Object tag)方法就可以輕松搞定,如果一定需要使用多個(gè)tag綁定,那么需要先在res/values/strings.xml中添加 使用的時(shí)候?qū)懗蒳mageView.setTag(R.id.tag_first"Hello");imageView.setTag(R.id.tag_second"Success");就可以了取值的時(shí)候String tag_first=v.getTag(R.id.tag_first).tostring;就能取到值了!

更多文章請(qǐng)關(guān)注個(gè)人微博:@Lx_Rosen 微信公眾號(hào):U學(xué)問(wèn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容