android 列表单选 /多选/全选删除

2024-09-04 05:44

本文主要是介绍android 列表单选 /多选/全选删除,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

模拟点假数据对应的bean类 添加一个boolean值默认是flase 默认不选中,根据自己的需求

public class ProFileBean {private String pic;private String title;private boolean aBoolean;public boolean isaBoolean() {return aBoolean;}public void setaBoolean(boolean aBoolean) {this.aBoolean = aBoolean;}public String getPic() {return pic;}public void setPic(String pic) {this.pic = pic;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}
}

 下面就是适配器adapert 我的选框是小方框 控件CheckBox

public class ProFileAdapert extends RecyclerView.Adapter {private Context context;ArrayList<ProFileBean> list;public ProFileAdapert(Context context, ArrayList<ProFileBean> list) {this.context = context;this.list = list;}@NonNull@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType ) {MyRecycleHolder myRecycleHolder = new MyRecycleHolder(LayoutInflater.from(context).inflate(R.layout.item_profile, parent, false));return myRecycleHolder;}@Overridepublic void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, @SuppressLint("RecyclerView") int position) {MyRecycleHolder holder1 = (MyRecycleHolder) holder;holder1.title.setText("" + list.get(position).getTitle());//设置checkbox的选中状态holder1.itmeCheck.setChecked(list.get(position).isaBoolean());holder1.itmeCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton compoundButton, boolean b) {//点击了勾选设置成选中truelist.get(position).setaBoolean(b);}});}@Overridepublic int getItemCount() {return list == null ? 0 : list.size();}class MyRecycleHolder extends RecyclerView.ViewHolder {private ImageView imgPic;private TextView title;private CheckBox itmeCheck;public MyRecycleHolder(@NonNull View itemView) {super(itemView);imgPic = (ImageView) itemView.findViewById(R.id.imgPic);title = (TextView) itemView.findViewById(R.id.fileTitle);itmeCheck = (CheckBox) itemView.findViewById(R.id.itmeCheck);}}
}
下面是对应的 主页面 
public class ProFileFragment extends BaseDJFragment<FragmentProfileBinding> {private RecyclerView recyList;private ArrayList<ProFileBean> list = new ArrayList<>();private ProFileAdapert proFileAdapert;private TextView deleteFile;private CheckBox checkAll;boolean isnoCheckAll = false;ProFileBean proFileBean = new ProFileBean();ProFileBean proFileBean2 = new ProFileBean();ProFileBean proFileBean3 = new ProFileBean();ProFileBean proFileBean4 = new ProFileBean();ProFileBean proFileBean5 = new ProFileBean();@NonNull@Overridepublic FragmentProfileBinding provideViewBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {return FragmentProfileBinding.inflate(inflater, container, false);}@Overrideprotected void setupView(@NonNull View view, @Nullable Bundle savedInstanceState) {deleteFile = view.findViewById(R.id.deleteFile);checkAll = view.findViewById(R.id.checkAll);recyList = view.findViewById(R.id.recy_list);proFileBean.setTitle("11111111");proFileBean2.setTitle("222222");proFileBean3.setTitle("33333333");proFileBean4.setTitle("444444");proFileBean5.setTitle("55555");list.add(proFileBean);list.add(proFileBean2);list.add(proFileBean3);list.add(proFileBean4);list.add(proFileBean5);recyList.setLayoutManager(new GridLayoutManager(getActivity(), 4));recyList.setAdapter(proFileAdapert = new ProFileAdapert(getActivity(), list));//全选checkAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton compoundButton, boolean b) {if (b) {isnoCheckAll = true;for (int i = 0; i < proFileAdapert.list.size(); i++) {proFileAdapert.notifyDataSetChanged();list.get(i).setaBoolean(true);}} else {for (int i = 0; i < proFileAdapert.list.size(); i++) {list.get(i).setaBoolean(false);}isnoCheckAll = false;}proFileAdapert.notifyDataSetChanged();}});//删除deleteFile.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if (isnoCheckAll) {proFileAdapert.list.clear();proFileAdapert.notifyDataSetChanged();} else {for (int i = 0; i < list.size(); i++) {if (list.get(i).isaBoolean() == true) {list.remove(i);i--;//由于删除了一个元素,所以需要将i-1}}proFileAdapert.notifyDataSetChanged();}}});}
}

主布局就是一个 CheckBox 全选  一个textview删除  一个对应的recycleview

适配器子布局 就是一个textview文字 左右一个 CheckBox单选

这篇关于android 列表单选 /多选/全选删除的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1135159

相关文章

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Redis过期键删除策略解读

《Redis过期键删除策略解读》Redis通过惰性删除策略和定期删除策略来管理过期键,惰性删除策略在键被访问时检查是否过期并删除,节省CPU开销但可能导致过期键滞留,定期删除策略定期扫描并删除过期键,... 目录1.Redis使用两种不同的策略来删除过期键,分别是惰性删除策略和定期删除策略1.1惰性删除策略

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

MySQL中删除重复数据SQL的三种写法

《MySQL中删除重复数据SQL的三种写法》:本文主要介绍MySQL中删除重复数据SQL的三种写法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录方法一:使用 left join + 子查询删除重复数据(推荐)方法二:创建临时表(需分多步执行,逻辑清晰,但会

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Python中列表的高级索引技巧分享

《Python中列表的高级索引技巧分享》列表是Python中最常用的数据结构之一,它允许你存储多个元素,并且可以通过索引来访问这些元素,本文将带你深入了解Python列表的高级索引技巧,希望对... 目录1.基本索引2.切片3.负数索引切片4.步长5.多维列表6.列表解析7.切片赋值8.删除元素9.反转列表

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

Python按条件批量删除TXT文件行工具

《Python按条件批量删除TXT文件行工具》这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.简介2.运行效果3.相关源码1.简介一个由python编写android的可根据TXT文件按条件批

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C