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

相关文章

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me