tag是view的一個屬性,也可以說是view用于存放參數(shù)的一個map,對于提高性能和參數(shù)傳遞都有妙用,比如提高listview的性能:
用于緩存item的view
if (convertView == null) {
holder = new ItemViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.view_item, null);
holder.timeTextView = (TextView) convertView.findViewById(R.id.text_item_content_time);
holder.remarkTextView = (TextView) convertView.findViewById(R.id.text_item_content_remark);
convertView.setTag(holder);
} else {
holder = (ItemViewHolder)convertView.getTag();
}
if(mMessageListGroup.get(mMessageList.get(position).getGroupId()).isShown()){
convertView.setTag(R.id.child_show, true);
}else{
convertView.setTag(R.id.child_show, false);
}
return convertView;
}
在上面的代碼中用到了tag,如果是一個好說直接setTag即可,如果有多個又怎么辦呢?
setTag還有一個帶int類型的重載,但是設(shè)置final類型的常量或者寫死數(shù)字都會出現(xiàn):
The key must be an application-specific resource id 異常:
需要在ids.xml文件中定義一個ID,然后設(shè)置在這里!!
以上就是Android開發(fā)setTag的妙用的全部內(nèi)容,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。
新聞熱點
疑難解答
圖片精選