RecycleView 单选 以及多选单选互斥两种状态 和多选
16lz
2021-01-24
RecycleView 单选 以及多选单选互斥两种状态 和多选 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190721111508473.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2J4bGxvdmU=,size_16,color_FFFFFF,t_70
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; Listmlist=new ArrayList<>(); Map 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 { Map map; public Ada(Map map, @Nullable List 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
更多相关文章
- 修改ExpandableListView前面展开小图标
- 【Android】Android开源项目分类汇总
- Cocos2d-x12和NDK-r8编译android
- GitHub 上一些优秀的 Android(安卓)开源项目
- Android(安卓)图文数据JSON解析,金山词霸每日一句API的调用
- android CallCard.java/updateState(Phone phone)分析
- android实时监听网络状态并在断网的情况下打开网络设置
- Android状态栏微技巧(推荐)
- android解决FragmentStatePagerAdapter 造成重新绘制fragment状