android:ListView:convertView.setTag()来设置数据
void android.view.View.setTag(Object tag)
public void setTag (Object tag)
Since: API Level 1
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.
Parameters
an Object to tag the view with
also see
getTag()
setTag(int, Object)
public View getView(int position, View convertView, ViewGroup parent) { final int cc = position; ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.itemrow, null); holder.tagcolor = (ImageView) convertView.findViewById(R.id.itemrowiamge); holder.itemname = (TextView) convertView.findViewById(R.id.itemrowtext); holder.cb = (CheckBox) convertView.findViewById(R.id.itemrowcb); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } //获取ViewHolder中所填入的数据 holder.tagcolor.setBackgroundResource((Integer) itemList.get(position).get("IMG")); holder.itemname.setText((String) itemList.get(position).get("ITEMNAME")); holder.ckd = (String) itemList.get(position).get("CHECKED"); //单个项目中的CheckBox的按键监听函数 holder.cb.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { setC(cc);//当被按下后调用函数改变状态 } }); if (holder.ckd.equals("t")) holder.cb.setChecked(true); else holder.cb.setChecked(false); return convertView; }
设一个holder类
import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; //ViewHolder类用以储存每一条项目所需的数据 public class ViewHolder { public ImageView tagcolor;//单条项目中的图片 public TextView itemname;//单条项目中的文本 public CheckBox cb;//单条项目中的CheckBox public String ckd;//单条项目中用以标识CheckBox状态的字符串变量 }
即可。
作者:老Zhan
出处:http://www.cnblogs.com/mybkn/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。