我有一个使用DragSortListView库创建的listView。我可以检查和取消使用自定义基本适配器创建的行。我在片段代码中使用getCheckedItemPositions()获得了检查位置。
问题是,当我删除选中的特定行并添加新行时,会自动检查该新行。我希望该行在删除时取消选中。
以下是我在getView()中所做的事情,但它无法正常工作。
holder.clearItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
items.remove(position);
updateNoteAdapter(items);
holder.container.setChecked(false); //row needs to be unchecked
}
});
项是列表行中显示的项目的arraylist。
holder.container 是实现可检查的OneLineCheckableListItem类。
public class OneLineCheckableListItem extends RelativeLayout implements Checkable{
public OneLineCheckableListItem(Context context, AttributeSet attrs){
super(context, attrs);
}
private boolean checked;
@Override
public void setChecked(boolean checked) {
this.checked = checked;
ImageView iv = (ImageView) findViewById(R.id.SelectImageView);
iv.setImageResource(checked ? R.drawable.ic_toggle_check_box : R.drawable.ic_toggle_check_box_outline_blank);
}
@Override
public boolean isChecked() {
return checked;
}
@Override
public void toggle() {
this.checked = !this.checked;
}
}
我在这里错过了什么吗?任何帮助表示赞赏。感谢。
答案 0 :(得分:0)
我在下面找到了这个解决方案。
setChecked()不检查项目,我们必须在ListView上使用setItemChecked()。
要检查CHOICE_MODE_MULTIPLE中的项目,请不要致电 CheckedTextView上的setChecked()。调用setItemChecked()就可以了 的ListView。
和这个