全选,反选,全不选

布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"></ListView>
    <RadioGroup
        android:id="@+id/rg"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        android:gravity="center_vertical">
        <RadioButton
            android:id="@+id/rb_quanxuan"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="全选"/>
        <RadioButton
            android:id="@+id/rb_fanxuan"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="反选"/>
        <RadioButton
            android:id="@+id/rb_quanbuxuan"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="全不选"/>
    </RadioGroup>
</LinearLayout>


条目布局


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:orientation="horizontal"
        android:gravity="center_vertical">
        <CheckBox
            android:id="@+id/cb_item"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"/>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_marginLeft="20dp">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="条目"
                android:textSize="15sp"/>
            <ImageView
                android:layout_width="100dp"
                android:layout_height="85dp"
                android:src="@mipmap/ic_launcher"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

bean

package com.baway.rikao;

/**
 * @author 任珏
 * @类的用途
 * @date 2017/4/12 8:51
 */
public class ItemBean {
    public boolean ischeck;

    @Override
    public String toString() {
        return "ItemBean{" +
                "ischeck=" + ischeck +
                '}';
    }
}

代码

package com.baway.rikao;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.RadioGroup;
import android.widget.Switch;

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

public class MainActivity extends AppCompatActivity {

    private ListView lv;
    private RadioGroup rg;
    private List<ItemBean> list;
    private MyAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        list = new ArrayList<>();
        for (int i = 0; i < 5; i++) {
            ItemBean itemBean = new ItemBean();
            itemBean.ischeck=false;
            list.add(itemBean);
        }
        adapter = new MyAdapter();
        lv.setAdapter(adapter);
        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId){
                    case R.id.rb_quanxuan:
                        for (int i = 0; i < list.size(); i++) {
                            list.get(i).ischeck=true;
                        }
                        adapter.notifyDataSetChanged();
                        break;
                    case R.id.rb_fanxuan:
                        for (int i = 0; i < list.size(); i++) {
                            if (list.get(i).ischeck){
                                list.get(i).ischeck=false;
                            }else{
                                list.get(i).ischeck=true;
                            }
                        }
                        adapter.notifyDataSetChanged();
                        break;
                    case R.id.rb_quanbuxuan:
                        for (int i = 0; i < list.size(); i++) {
                            list.get(i).ischeck=false;
                        }
                        adapter.notifyDataSetChanged();
                        break;
                }
            }
        });
    }

    private void initView() {
        lv = (ListView) findViewById(R.id.lv);
        rg = (RadioGroup) findViewById(R.id.rg);
    }
    class MyAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            return list.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            convertView=View.inflate(MainActivity.this,R.layout.lv_item,null);
            final CheckBox cb_item = (CheckBox) convertView.findViewById(R.id.cb_item);
            cb_item.setChecked(list.get(position).ischeck);
            cb_item.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (cb_item.isChecked()){
                        list.get(position).ischeck=true;
                    }else{
                        list.get(position).ischeck=false;
                    }
                    notifyDataSetChanged();
                }
            });
            return convertView;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值