多选框和反选框
来源:互联网 发布:对冲书籍 知乎 编辑:程序博客网 时间:2024/06/05 15:04
for (int i=0;i<20;i++){
list.add("这是item条目"+i);
}
adapter = new MyAdapter(MainActivity.this,list,cb);
lv.setAdapter(adapter);
//设置全选
cb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
boolean flag = cb.isChecked();
for (int i = 0; i < adapter.getSelect().size(); i++) {
adapter.getSelect().set(i, flag);
}
adapter.notifyDataSetChanged();
}
});
//反选
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (! adapter.getSelect().contains(true)) {
Toast.makeText(MainActivity.this, "qingxuanz", 0).show();
}else {
for (int i = 0; i < adapter.getSelect().size(); i++) {
if (adapter.getSelect().get(i)) {
adapter.getSelect().set(i, false);
}else {
adapter.getSelect().set(i, true);
}
}
if (adapter.getSelect().contains(false)) {
cb.setChecked(false);
}
adapter.notifyDataSetChanged();
}
}
});
//适配器
LinkedList<Boolean> linkedList=new LinkedList<Boolean>();
public MyAdapter(Context context, List<String> list, CheckBox allBox) {
super();
this.context = context;
this.list = list;
this.allBox = allBox;
for (int i=0;i<list.size();i++){
linkedList.add(false);
}
}
//对外提供一个方法 获取这个集合
public List<Boolean> getSelect() {
return linkedList;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView==null){
convertView=View.inflate(context, R.layout.list_item, null);
}
TextView list_item_tv=(TextView) convertView.findViewById(R.id.list_item_tv);
CheckBox list_item_cb=(CheckBox) convertView.findViewById(R.id.list_item_cb);
list_item_tv.setText(list.get(position));
list_item_cb.setChecked(linkedList.get(position));
//对checkBox点击进行监听
list_item_cb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//点中的时候改成相反的值
linkedList.set(position, ! linkedList.get(position));
//点击的同时还要去判断全选
if (linkedList.contains(false)) {
allBox.setChecked(false);
}else {
allBox.setChecked(true);
}
notifyDataSetChanged();
}
});
return convertView;
}
- 多选框和反选框
- ext多选框和单选框
- . 和 ->
- || 和&&
- .和::
- “?”和“!”
- #和##
- && 和 ||
- 、和
- #和##
- .//和..//
- 和
- ?和\?
- ./ 和 ../
- #和##
- #、和##
- #和##
- *和&
- Spark的算子的分类
- hexo+github pages博客搭建记录
- 流程控制简单知识点以及零碎知识点
- 20161016 Python 读书笔记之函数抽象 参数、作用域
- UVa 540 Team Queue
- 多选框和反选框
- 分区结构分析: linux系统可查看某一磁盘结构,效果类似window的winhex。
- SD卡启动详解
- ListViewTest
- cin对象3种不同模式的单字符输入在while循环中的应用(循环显示,计算总字符数)
- SQLite数据库储存优化
- linux内核中socket的创建过程源码分析(总结性质)
- 快速创建大文件
- LeetCode Two sum