ListView多条目与checkBox全选删除操作
2018-04-06 15:50
423 查看
1、多条目
效果图:主要不一样的地方是在自定义的MyAdapter.java中。
private final int TYPE_1 = 0; private final int TYPE_2 = 1; //指定想要实现的布局类型 @Override public int getItemViewType(int position) { if(position % 2 == 0) { return TYPE_2; } else { return TYPE_1; } } //指定要加载多少个条目类型 @Override public int getViewTypeCount() { return 2; } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); switch (type) { case TYPE_1: convertView = View.inflate(mContext, R.layout.layout_item1, null); break; case TYPE_2: convertView = View.inflate(mContext, R.layout.layout_item2, null); break; default: break; } return convertView; }
2、checkBox全选删除操作
界面:全选:
删除:
UI界面的设计代码就不写了。直接上添加的逻辑代码。
代码:
mAllSelected.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(mAllSelected.getText().equals("全选")) { mAllSelected.setText("取消"); for(int i = 0; i < itemList.size(); i++) { itemList.get(i).setCheckBox(true); } myAdapter.notifyDataSetChanged(); } else { mAllSelected.setText("全选"); for(int i = 0; i < itemList.size(); i++) { itemList.get(i).setCheckBox(false); } myAdapter.notifyDataSetChanged(); } } });
itemList为数据集。注意修改后数据,添加myAdapter.notifyDataSetChanged();语句。
MyAdapter.java:
// myHandler.checkBox.setChecked(thing.getCheckBox()); // myHandler.checkBox.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // Item thing = mItemList.get(position); // if(myHandler.checkBox.isChecked()) { // thing.setCheckBox(true); // } // else { // thing.setCheckBox(false); // } // } // }); myHandler.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Item thing = mItemList.get(position); if(myHandler.checkBox.isChecked()) { thing.setCheckBox(true); } else { thing.setCheckBox(false); } } }); myHandler.checkBox.setChecked(thing.getCheckBox());
mItemList是MyAdapter中的数据集。
这里使用setOnClickListener()与setOnCheckedChangeListener()都可以完成单选item中checkBox状态改变的操作。但是setOnCheckedChangeListener()可以监听checkBox的所有变化,而setOnClickListener()只能监听点击事件,不能监听setCheckBox()方法等。
其次是,当使用setOnCheckedChangeListene()时, myHandler.checkBox.setChecked(thing.getCheckBox());语句必须在监听事件之后执行,而使用setOnClickListener()时,myHandler.checkBox.setChecked(thing.getCheckBox());语句位置可先可后。
相关文章推荐
- JQuery实现下拉框的选择 与当CheckBox为服务器控件时如何获取值的操作,实现全选与删除
- 安卓ListView中CheckBox的使用(支持Item列表项的删除,全选,全不选)
- Android中ListView绑定CheckBox实现全选增加和删除功能(DEMO)
- 安卓listview,GridView全选反选以及删除操作
- JQuery操作table中checkbox全选删除,图片放大浏览效果。
- Android开发——listview中嵌套checkBox复选框实现单选、全选删除列表内容
- ListView长按弹出CheckBox实现全选,反选,批量删除
- Android 带checkbox的listView 实现多选,全选,反选,删除
- Android ListView和CheckBox应用之批量删除操作
- ListView全选删除CheckBox
- JQuery实现下拉框的选择 与当CheckBox为服务器控件时如何获取值的操作,实现全选与删除
- Android ListView条目全选功能,不用checkbox实现!
- android完美解决ListView中CheckBox的全选、反选、批量删除的问题
- Android ListView条目全选功能,不用checkbox实现!
- Android ListView长按弹出CheckBox,实现全选,反选,批量删除功能
- Android 带checkbox的listView 实现多选,全选,反选,删除
- Android ListView和CheckBox应用之批量删除操作
- Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能
- Android 带checkbox的listView 实现多选,全选,反选,删除
- Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能