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