如何选中和取消选中来自 activity 的自定义列表视图中的所有复选框?

how to check and uncheck all checkbox in custom listview from activity?

我试图通过单击选中和取消选中 Activity 中的所有复选框。 我试过这段代码:

private ListView mListView;
private Contacts_ListViewAdapter ContactViewAdapter;
private ArrayList<Contacts_ListView> ContactView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    intent = getIntent();
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    mListView = (ListView) findViewById(R.id.Contacts_list);
    Selected_check_box = (CheckBox) findViewById(R.id.Selected_check_box) ;
    View parentLayout = findViewById(android.R.id.content);
  Select_All.setOnClickListener(new View.OnClickListener() {
        private int ContactViewSize;

        @Override
        public void onClick(View view) {
            ListView lv = mListView ;
            int size = ContactViewAdapter.getCount();
            boolean check = lv.isItemChecked(0);
            for(int i = 0; i <= size; i++)
                lv.setItemChecked(i, !check);
    }
    });

好像不行。

setItemChecked(position , value) - 这仅在选择模式已设置为 CHOICE_MODE_SINGLE 或 CHOICE_MODE_MULTIPLE 时有效。尝试设置它

listView.setChoiceMode(int mode)

您需要更新自定义 CursorAdapter 中的信息,因为 Listview 仅构建足够 "list view" 用于显示和回收重用以及动态更改这些视图以提高效率。

在您的自定义适配器下,添加全局差异并更新它。

boolean allcheck = false; //Default unchecked   

更新 bindView

处的所有复选框
public void bindView(View view, Context context, Cursor cursor) {
CheckBox box = (CheckBox) view.findViewById(R.id.checkBox);

      box.setChecked(allcheck);

    }