Android开发:基于BaseMultipleChoiceAdapter快速封装列表多选功能

作者:袖梨 2026-05-29

在Android应用开发中,列表多选编辑功能是收藏、文件管理等场景的常见需求。本文介绍如何通过封装BaseMultipleChoiceAdapter基类,快速实现全选、单选和批量操作功能。

Android 封装 BaseMultipleChoiceAdapter 快速实现列表多选编辑

BaseMultipleChoiceAdapter实现原理

该适配器基类通过维护两个核心数据结构:数据列表lists和选中状态数组marks,简化了多选功能的开发流程。开发者只需关注UI展示和数据绑定,选中状态的维护完全由基类处理。

public abstract class BaseMultipleChoiceAdapter<B extends ViewBinding, T> extends RecyclerView.Adapter {
    // 核心数据结构和关键方法实现...
}

核心功能详解

  1. 数据管理:提供setData()和addData()方法处理数据更新
  2. 选中状态控制:通过addMark()实现单选切换
  3. 批量操作:choiceAll()和choiceNone()实现全选/全不选
  4. 选中数据获取:getMarkData()返回所有选中项

数据检查工具类

DataCheckUtil提供多种数据判空方法,确保操作安全性。

public class DataCheckUtil {
    // 多种数据校验方法实现...
}

实战应用:收藏功能实现

通过CollectActivity和CollectAdapter演示具体应用:

1. 布局文件关键点


    
    id="@+id/tv_gl_right"/>
    id="@+id/tv_cancel_right"/>
    
    
    id="@+id/ll_check">
        src="@drawable/selector_check_yyts2"/>
    
    
    
    id="@+id/fl_delete">
        text="删除"/>
    

2. Activity核心逻辑

CollectActivity处理编辑状态切换和批量删除:

public class CollectActivity extends BaseBingActivity {
    // 初始化适配器和器
    collectAdapter.setOnMultipleChoiceDataListener(new OnMultipleChoiceDataListener() {
        // 处理全选/部分选中状态变化
    });
    
    // 点击事件处理
    public void onClick(View view) {
        // 管理/取消/全选/删除等操作
    }
}

3. 适配器实现

CollectAdapter继承BaseMultipleChoiceAdapter,专注UI展示:

public class CollectAdapter extends BaseMultipleChoiceAdapter {
    // 实现数据绑定和选中状态UI更新
}

4. 列表项布局


    id="@+id/iv_check"/>
    id="@+id/tv_sn"/>
    id="@+id/tv_name"/>

通过封装BaseMultipleChoiceAdapter,开发者可以快速实现复杂的列表多选功能,大幅提升开发效率。文中的完整代码示例可直接应用于实际项目,帮助构建更强大的Android应用。

相关文章

精彩推荐