RecycleView 单选 以及多选单选互斥两种状态 和多选

RecycleView 单选 以及多选单选互斥两种状态 和多选 ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2b6a6452590be628cef065dc30ba4e54.png


在这里插入图片描述

package com.example.beey;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.chad.library.adapter.base.BaseQuickAdapter;
import com.example.beey.Ada;
import com.example.beey.R;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
    private RecyclerView mRe;
    List<String>mlist=new ArrayList<>();
    Map<Integer,Boolean> map=new HashMap<>();
    private Ada adddd;
    private String string="單選互斥";

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


        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                adddd.setModel("單選互斥");
                string="單選互斥";
            }
        });


        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                adddd.setModel("單選");
                string="單選";
            }
        });


        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                adddd.setModel("多選");
                string="多選";
            }
        });




        for (int i = 0; i <10 ; i++) {
            mlist.add(i+"//");
            map.put(i,false);
        }
        mRe.setLayoutManager(new LinearLayoutManager(this));
        adddd = new Ada(map,mlist);
        mRe.setAdapter(adddd);
        adddd.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {

                switch (string){
                    case "單選":
                    case "單選互斥":
                        adddd.getindex(position);

                        break;

                    case "多選":
                        if(map.get(position)==false){
                            map.put(position,true);
                        }else {
                            map.put(position,false);
                        }
                        break;

                }
                adddd.notifyDataSetChanged();
            }
        });
    }
}

package com.example.beey;

import android.annotation.SuppressLint;
import android.graphics.Color;
import android.widget.TextView;

import androidx.annotation.Nullable;

import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.example.beey.R;

import java.util.List;
import java.util.Map;

public class Ada extends BaseQuickAdapter<String, BaseViewHolder> {

    Map<Integer, Boolean> map;

    public Ada(Map<Integer, Boolean> map, @Nullable List<String> data) {
        super(R.layout.activity_mn, data);
        this.map = map;
    }

    @SuppressLint("ResourceAsColor")
    @Override
    protected void convert(BaseViewHolder helper, String item) {
        TextView d = helper.getView(R.id.dd);
        switch (stype){
            case "單選互斥":
                if (helper.getLayoutPosition() == index) {
                    if (map.get(index) == false) {
                        map.put(index, true);
                        d.setBackgroundColor(Color.parseColor("#eeccff"));
                    } else {
                        map.put(index, false);
                        d.setBackgroundColor(Color.parseColor("#cceecc"));
                    }

                } else {
                    map.put(helper.getLayoutPosition(), false);
                    d.setBackgroundColor(Color.parseColor("#cceecc"));
                }
                break;
            case "單選":
                if (helper.getLayoutPosition() == index) {
                    d.setBackgroundColor(Color.parseColor("#eeccff"));
                } else {
                    d.setBackgroundColor(Color.parseColor("#cceecc"));
                }
                break;
            case "多選":
                if (map.get(helper.getLayoutPosition()) == false) {
                    d.setBackgroundColor(Color.parseColor("#eeccff"));
                } else {
                    d.setBackgroundColor(Color.parseColor("#cceecc"));
                }
                break;
        }
    }

    //單選兩種狀態 互斥
    private int index;

    public void getindex(int index) {
        this.index = index;

    }

    private String stype="def";
    public void setModel(String stype) {
        this.stype = stype;
        notifyDataSetChanged();
    }
}

下载链接地址
https://download.csdn.net/download/bxllove/11390877

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值