我加载电话联系人数据导入到其中有一个TextView和一个CheckBox作为行一个ListView。手柄回收复选框内的ListView与ResourceCursorAdapter
我面临的问题是在处理复选框,有一次我在ListView上任何项目的检查, 它被选中,但是当我向下滚动ListView的项目得到检查automatically
一组新的行,这只是happeing因为列表视图回收的东西,但我怎么能处理这一个复选框
我使用ResourceCursorAdapter
和使用bindView和NewView的方法。
我看到他们说来存储复选框的状态的线程数,但他们是not for ResourceCursorAdapter
,所以如何将这种方法?
到目前为止,我尝试以下based on RateListDemo of commonsware
public View getView (final int position, View convertView, ViewGroup parent) {
View row = super.getView(position, convertView, parent);
ContactListItemCache holder=(ContactListItemCache)row.getTag();
if (holder==null) {
holder=new ContactListItemCache(row);
row.setTag(holder);
/** I really don't know what to set over here **/
CheckBox cbox=(CheckBox)row.findViewById(R.id.contactCheck);
cbox.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Log.d("Check check",position+"");
}
});
/** I really don't know what to set over here too **/
holder.selCheckBox =cbox;
holder.selCheckBox.setTag(new Integer(position));
}
return row;
}
这里是我的ContactListItemCache
final static class ContactListItemCache {
public TextView nameView;
public QuickContactBadge photoView;
public CheckBox selCheckBox;
public CharArrayBuffer nameBuffer = new CharArrayBuffer(128);
public CharArrayBuffer nameMiddleBuffer = new CharArrayBuffer(128);
public CharArrayBuffer nameFamilyBuffer = new CharArrayBuffer(128);
/** Following Changes I have Made **/
ContactListItemCache(){}
ContactListItemCache(View base){
selCheckBox = (CheckBox)base.findViewById(R.id.contactCheck);
}
}
我试过用资源适配器但没有工作 – Hunt 2012-02-25 21:59:04