我有一个列表视图,其中包含项目名称前面的项目名称和复选框,以及布局下方的一个删除按钮,如果我的列表包含15个项目,则只有10个项目可见,当我向下滚动并检查第15项,然后按删除按钮,它将在复选框上抛出一个空指针异常。以下是我使用复选框从列表视图中删除项目的代码。
deleteButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
System.out.println("Cursor length is " + cursor.getCount());
for (int i = 1; i <= cursor.getCount(); i++) {
listData.recomputeViewAttributes(view);
listData.getResources();
listData.smoothScrollToPosition(i);
view = listData.getChildAt(i-1);
System.out.println("Count is "+i);
CheckBox box = (CheckBox) view.findViewById(R.id.checkBox1);
if (box.isChecked()) {
System.out.println("Box Checked");
/*cursor.moveToPosition(i);
int id = cursor.getInt(0);
System.out.println("Id is " + id);
controller.deleteBookmarkOnId(id);*/
}
}
dialog.dismiss();
}
});
答案 0 :(得分:0)
findViewById
方法不应该输入“位置”(如i - 1
),而是输入资源包中的ID,例如R.id.check_box
。