如何选中和取消选中来自 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);
}
我试图通过单击选中和取消选中 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);
}