0

我有一个列表视图,其中包含项目名称前面的项目名称和复选框,以及布局下方的一个删除按钮,如果我的列表包含 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();
    }
});
4

1 回答 1

0

findViewById方法不应输入“位置”(如i - 1),而是输入资源包中的 ID,如R.id.check_box.

于 2013-09-13T07:48:50.473 回答