文档章节

带迭代器的 checkbox 全选 反选 不选

 阿狸的青春
发布于 2016/04/13 20:12
字数 530
阅读 10
收藏 0
 实现类

package com.example.myche;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;

public class MainActivity extends Activity implements OnClickListener {
    public static String[] name = new String[] { "马克思", "恩格斯", "斯大林", "毛泽东",
            "邓小平", "马克思", "恩格斯", "斯大林", "毛泽东", "邓小平", "马克思", "恩格斯", "斯大林",
            "毛泽东", "邓小平" };
    private List<Item> list;
    private ListView lv;
    private Button button1;
    private Button button2;
    private Button button3;
    private Myadapter myadapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.lv);
        button1 = (Button) findViewById(R.id.button1);
        button2 = (Button) findViewById(R.id.button2);
        button3 = (Button) findViewById(R.id.button3);
        init();

        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
        
        myadapter = new Myadapter(list, this);
        lv.setAdapter(myadapter);
        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub
                if(list.get(arg2).isIscheck()==true){
                    list.get(arg2).setIscheck(false);
                }else{
                    list.get(arg2).setIscheck(true);
                    
                }
                myadapter.notifyDataSetChanged();
            }
        });

    }

    private void init() {
        list = new ArrayList<Item>();
        for (int i = 0; i < 30; i++) {
            Item item = new Item();
            item.setName("name" + i);
            item.setIscheck(false);
            list.add(item);
        }

    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.button1:
            for(int i=0;i<list.size();i++){
                list.get(i).setIscheck(true);
                myadapter.notifyDataSetChanged();
            }
            break;

        case R.id.button2:
            for(int i=0;i<list.size();i++){
                boolean ischeckbox=list.get(i).isIscheck();
                if(ischeckbox==true){
                    list.get(i).setIscheck(false);
                }else{
                    list.get(i).setIscheck(true);
                }
                myadapter.notifyDataSetChanged();
            }

            break;
        case R.id.button3:
            Iterator<Item> it=list.iterator();
            while(it.hasNext()){
                Item i=it.next();
                if(i.isIscheck()==true){
                    it.remove();
                }
                myadapter.notifyDataSetChanged();
            }
            break;
        }
    }

}

适配器

package com.example.myche;

import java.util.List;

import android.content.Context;
import android.database.DataSetObserver;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ListAdapter;
import android.widget.TextView;

public class Myadapter extends BaseAdapter {

    private Context context;
    private List<Item> list;

    public Myadapter(List<Item> list,Context context) {
        // TODO Auto-generated constructor stub
        this.context=context;
        this.list=list;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        final ViewHolder vh;
        
        if(convertView==null){
            convertView=View.inflate(context, R.layout.item, null);
            vh=new ViewHolder();
            vh.name=(TextView) convertView.findViewById(R.id.item_tv);
            vh.checkbox=(CheckBox) convertView.findViewById(R.id.checkbox);
            convertView.setTag(vh);
        }else{
            vh=(ViewHolder) convertView.getTag();
        }
        vh.name.setText(list.get(position).getName());
        vh.checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub
                if(isChecked){
                    list.get(position).setIscheck(true);
                }else{
                    list.get(position).setIscheck(false);
                }
            }
        });
        vh.checkbox.setChecked(list.get(position).isIscheck());
        return convertView;
    }
    class ViewHolder{
        TextView name;
        CheckBox checkbox;
    }

    
}

item类

package com.example.myche;

public class Item {
    private String name;
    private boolean ischeck;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public boolean isIscheck() {
        return ischeck;
    }
    public void setIscheck(boolean ischeck) {
        this.ischeck = ischeck;
    }
    public Item(String name, boolean ischeck) {
        super();
        this.name = name;
        this.ischeck = ischeck;
    }
    @Override
    public String toString() {
        return "Item [name=" + name + ", ischeck=" + ischeck + "]";
    }
    public Item() {
        super();
        // TODO Auto-generated constructor stub
    }
    

}

© 著作权归作者所有

粉丝 0
博文 18
码字总数 8352
作品 0
海淀
私信 提问
checkbox的常用操作

声明:如果你想去看具体的例子,请下载压缩包:checkbox-demo.rar就行了! 里面包括checkbox的基本操作的例子,以及一个淘宝的小例子!! Checkbox的操作基本上就几种:选中,未选中,全选,...

技术小胖子
2017/10/31
0
0
小博老师演示常用JQuery效果 ——复选框全选和反选效果

[理论知识] 我们在实际开发应用程序的过程中,经常会遇到复选框全选和反选的效果需求,本文小博老师就为大家演示一下,如何使用JQuery框架实现复选框全选和反选的效果。 [步骤解读一]界面布局...

博为峰教研组
2016/11/18
37
0
小段code_TagName/onload_实现全选不选反选

下面代码是实现全选、不选和反选的功能:由于javascript 是解释型语言,读一句执行一句,当script标签中获取的元素在之后出现,将出现错误,可以用window.onload解决这个问题,使其在加载完整...

cd_ing
2013/12/14
55
0
php全选,反选,不选 和 选中批量删除和分页代码

php全选,反选,不选 和 选中批量删除和分页代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xm......

招PHP程序员
2011/01/10
1K
0
复选框问题

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <mce:style><!-- --></mce:style><style mce_bogus="1"> </style......

李永china
2016/09/26
6
0

没有更多内容

加载失败,请刷新页面

加载更多

面向对象编程

1、类和对象 类是对象的蓝图和模板,而对象是实例;即对象是具体的实例,类是一个抽象的模板 当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定...

huijue
今天
8
0
redis异常解决 :idea启动本地redis出现 jedis.exceptions.JedisDataException: NOAUTH Authentication required

第一次安装在本地redis服务,试试跑项目,结果却出现nested exception is redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required错误,真是让人头疼 先检查一...

青慕
今天
12
0
Spring 之 IoC 源码分析 (基于注解方式)

一、 IoC 理论 IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入。 二、IoC方式 Spring为IoC提供了2种方式,一种是基于xml...

星爵22
今天
25
0
Docker安装PostgresSql

Docker安装PostgresSql 拉取docker镜像 # docker pull postgres:10.1010.10: Pulling from library/postgres9fc222b64b0a: Pull complete 38296355136d: Pull complete 2809e135bbdb: Pu......

Tree
今天
8
0
内容垂直居中

方法一: 采用上下 padding 形式,将内容放置在垂直居中 .line { padding: 2% 0; text-align: center; height: 5px;} <div class="line"> 内容垂直居中</div> 方法二: 采......

低至一折起
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部