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

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

Redis存储的列表分页和检索的实现方法

《Redis存储的列表分页和检索的实现方法》在Redis中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,... 目录一、Redis 列表的基本操作二、分页实现三、检索实现3.1 方法 1:客户端过滤3.2 方法

使用Python在Excel中插入、修改、提取和删除超链接

《使用Python在Excel中插入、修改、提取和删除超链接》超链接是Excel中的常用功能,通过点击超链接可以快速跳转到外部网站、本地文件或工作表中的特定单元格,有效提升数据访问的效率和用户体验,这... 目录引言使用工具python在Excel中插入超链接Python修改Excel中的超链接Python

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复