view 中有个setTag()函数,可以用来保存数据的。
文档中具体的解释:
Sets the tag associated with this view. A tag can be used to mark a view in its hierarchy and does not have to be unique within the hierarchy. Tags can also be used to store data within a view without resorting to another data structure.
设置一个 tag(标签,附属物) 关联这个view, 一个tag 可以被用于标记一个view ,在这个view的层次结构中,并且在这个层次结构中不会是唯一的。 tags 也可以用于在这个view中存储数据,而不用转为另外一种数据结构。
1.就是说在view的继承过程中可以存储多个tag 用于区分每一个层级?
没试过....
2.tag 绑定了view, 可以用来存储自己的数据。在 ListView 的 数据源 adapter 中 的 getView() 函数中非常有用。
下面是摘自SDK中
http://developer.android.com/training/improving-layouts/smooth-scrolling.html#AsyncTask
的代码:
static class ViewHolder { TextView text; TextView timestamp; ImageView icon; ProgressBar progress; int position; }
ViewHolder holder = new ViewHolder(); holder.icon = (ImageView) convertView.findViewById(R.id.listitem_image); holder.text = (TextView) convertView.findViewById(R.id.listitem_text); holder.timestamp = (TextView) convertView.findViewById(R.id.listitem_timestamp); holder.progress = (ProgressBar) convertView.findViewById(R.id.progress_spinner); convertView.setTag(holder);