Android应用开发之多选删除之一

Android实现拖动和全选删除功能的详细解析 在移动应用中,列表是常见的一种用户界面模式。列表中往往会有多条数据项,而全选删除功能允许用户一次性选择所有条目,并执行删除操作,极大地提升了用户在进行数据管理时的效率。在Android平台上,实现全选删除功能涉及到了列表视图(ListView或RecyclerView)、菜单(Menu)以及事件处理等多个方面。在Android开发中,Adapter的作用是连接数据与界面,把数据以一定的形式展现给用户。除了前面提到的和外,还有这种灵活的基类,以及用于直接绑定数据库查询结果。 阅读详情

传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229

        今天我们学习一下如何利用CheckBox实现对联系人记录的多选删除,多选删除功能在平时工作中经常会遇到,通常有两种解决方案:CheckBox实现和ActonBar实现。本人偏爱CheckBox样式的多选模式,因为它实现起来比较灵活多变,样式变换也很容易。而ActionBar的多选样式变换相对而言工作量会大很多。

1案例技术要点(待整理)

2案例代码陈列

工程包目录


AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cn.lynn.multisel"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".MultiSelectDeleteActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

strings.xml

<resources>

    <string name="app_name">CheckBox实现多选删除联系人</string>
    <string name="delete">删除</string>
    <string name="cancel">取消</string>
    <string name="select_all_text">全选</string>
    <string name="clearConfirmation_title">删除</string>
    <string name="clearConfirmation">加入的联系人将被删除</string>
    <string name="clearProgress_title">正在删除…</string>

</resources>

styles.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="CheckBoxTheme" parent="@android:style/Widget.CompoundButton.CheckBox">
        <item name="android:button">@drawable/checkbox_selector</item>
    </style>

    <style name="ButtonBarTheme" parent="@android:style/ButtonBar">
        <item name="android:background">#006699</item>
    </style>
</resources>

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <include
        android:id="@+id/select_all"
        layout="@layout/select_all" />

    <ListView
        android:id="@+id/del_list"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#ffffff"
        android:cacheColorHint="#00000000"
        android:listSelector="#00000000" />

    <LinearLayout
        style="@style/ButtonBarTheme"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/del_btn"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:enabled="false"
            android:text="@string/delete" />

        <Button
            android:id="@+id/can_btn"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/cancel" />
    </LinearLayout>

</LinearLayout>

list_item.xm

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:descendantFocusability="blocksDescendants"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:background="#66ccff" >
    
    <CheckBox
        android:id="@+id/select_chk"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:clickable="false"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:visibility="visible"
        style="@style/CheckBoxTheme"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="10dp" />

    <TextView
        android:id="@+id/name_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@id/select_chk"
        android:layout_marginRight="230dp"
        android:layout_centerVertical="true"
        android:singleLine="true"
        android:textSize="18sp"
        android:textColor="#ffffff" />

</RelativeLayout>

select_all.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:background="#006699" >

    <CheckBox
        android:id="@+id/select_all_chk"
        style="@style/CheckBoxTheme"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp" />
    
    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:text="@string/select_all_text"
        android:textColor="@android:color/white"
        android:textSize="20sp" />

</LinearLayout>

checkbox_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/checkbox_pressed" android:state_checked="true"/>
    <item android:drawable="@drawable/checkbox_normal" android:state_checked="false"/>
    <item android:drawable="@drawable/checkbox_normal"/>

</selector>
Android列表实现单选、多选、全选、取消、删除 立即下载

相关推荐

android ListView实现多选,批量删除

可以多选批量删除的item的ListView,实现勾选的隐藏和显示

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

简单实现 大神勿喷

TSBBjc 639

Android ListView批量删除

ListView和CheckBox结合完成的批量删除操作。

android自定义弹出框样式实现

前言: 做项目时,感觉android自带的弹出框样式比较丑,很多应用都是自己做的弹出框,这里也试着自己做了一个。 废话不说先上图片: 实现机制 1.先自定义一个弹出框的样式 2.自己实现CustomDialog类,继承自Dialog,实现里面方法,在里面加载自定义样式的弹出框; 3.使用时,与使用Dialog一样 具体代码 dialog_normal_layout.

段延锐的专栏 21万+

Android 带CheckBox的ListView 实现多选,全选,反选,删除效果

实现全选删除效果

Android 长按Listview显示CheckBox,实现批量删除

Android 长按Listview显示CheckBox,实现批量删除,具体功能请参考: http://blog.youkuaiyun.com/ddxxll2008/article/details/49125759

android修改弹窗样式的几种方式

不知道大家有没有发现,上面的弹窗跟前面几个不一样的,它是动态加载的,里面的内容可以根据需求动态增加,这种动态变化的,如果我要修改苹果、香蕉这些文字的颜色是白色时,前面的几种方式中,第一种是很难进行修改的,这个是动态变化的也不是直接在xml 上写死能解决的。当然这篇文章的主要目的并不是让你弄成一个好看的弹窗,这个我也不会,还是回归主题,我们如何修改弹窗的样式,用这种方法呢,也能争对性的修改弹窗的样式,只要你知道样式的内容代表什么,那么都能进行简单的修改。毕竟编程的思维是相通的。也就是上面我写的这行代码。

zpeien 4439

CTP接口入门

该文章主要讲什么 这篇文章的面向对象是有一些C++基础,并且想用C++来做程式化交易的同学。 这篇文章可以算是我的程式化学习笔记中的一篇。其中介绍了CTP的简单的使用方式,并且附上了一些代码以及我在试用的时候遇到的一些小坑。 什么是CTP CTP是上海期货推出的一套可供程序调用的交易接口。就好比官方给程序化交易提供了的一个专门的业务窗口。 接口相关文件下载 CTP接口可以在上期...

weizehua的专栏 4万+

Android 带CheckBox的ListView 实现多选,全选,反选,删除

经过这几天的研究终于把这个需求写好了,虽然网上很多,自己在写的时候还是遇到很多问题,在此记录下来。 效果图: 进去就是第一个界面,为了简单,我就写个循环模拟数据。长按ListView的一项出现右图那个界面。 我就直接写代码让后解释一下: 这个是主布局:在这里引用了几个style,在这里就不贴出来了,下面的一行默认是不显示的,当长按ListView的item时显示出来。可以点击最后...

ymszzu的博客 1万+

MPC-CBF 控制原理详解

假设系统满足如下离散时间动力学模型xt1fxtutxt∈Xut∈Uxt1​fxt​ut​xt​∈Xut​∈Uxtx_txt​:状态变量,定义域为可行状态集X⊆RnX⊆Rnutu_tut​:控制输入,定义域为控制约束集U⊆RmU⊆Rm系统需满足安全约束,由如下控制障碍函数(CBF)hX→RhX→RCx∈X∣hx≥0C:=x∈X∣hx≥。

m0_54691290的博客 1179

OMNET++ INET框架学习教程(一)

在自组网学习的道路上摸石头过河,帮你快速入门OIMNET++平台下的INET框架。

NLDwangzhe的博客 6565

Android应用开发之多选删除之二

传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229 传送门 ☞ 多选删除 ☞ 明月三千里 MultiSelectDeleteActivity.java package cn.lynn.multisel; import java.util.HashMap; import java.util.HashSet; import

leverli的专栏 2543

深度学习中常用的几种卷积(下篇):膨胀卷积、可分离卷积(深度可分离、空间可分离)、分组卷积(附Pytorch测试代码)

膨胀卷积也称为扩张卷积或空洞卷积,一般可通过对标准二维卷积的卷积核设置合适的膨胀率(具体地指卷积核元素之间的距离)实现。合理利用膨胀卷积可在不引入其他参数的同时,扩大输出中元素的感受野,提高特征的全局表示能力。下面通过展示几个不同膨胀率下的卷积核大小以及感受野变化情况,可以更直观的理解:图中灰色为输入,蓝色为卷积核,黄色为输出。1)dilation=1:表示卷积核元素之间距离为1,使用0进行大小为dilation-1=0的填充(这是默认情况),因此。

NorthSmile的博客 9013

android listview checkbox 记录,android基于ListView和CheckBox实现多选和全选记录的功能...

应用开发中经常会有从数据库中读取数据显示,然后选中多条、全部记录并且删除的需求。在做定制系统联系人的时候也遇到这样的需求,下面写个简单的通过listview和checkbox实现多选、全选的例子。下面是具体的代码.效果如下:multiselectactivity/*** multiselectactivity*/public class multiselectactivity extends ac...

weixin_36254564的博客 386

【异常】Cursor 模型服务地域访问限制报错的完整排查与解决方案This model provider doesn‘t serve your region

其本质是:Cursor客户端依赖的上游大语言模型服务提供商,基于自身服务的合规运营范围,对客户端发起的请求进行了来源地域权限校验;当系统检测到请求的网络来源地域,不在该模型服务商官方授权提供服务的地域范围内时,会触发服务访问拦截策略,拒绝响应本次模型调用请求,最终在客户端抛出该报错。合规声明:本文所提供的所有方案,均仅用于技术问题排查与解决,请您在使用过程中严格遵守当地法律法规,以及对应软件与模型服务提供商的用户协议与合规要求。更多关于AI+教育领域的干货,可以关注我的微信公众号一时间获取哦~

奶爸的编程之路,也就一周冷个三天 1134

yolov26改进 | 融合改进篇 | 基于 MobileNetV4 和双向特征金字塔网络BiFPN的融合改进(全网独家首发)

本文介绍BiFPN与MobileNetV4融合改进的YOLOv26。许多模块单独使用能够涨点,但直接叠加后可能因功能重复、通道不匹配、尺度冲突而掉点,因此融合前必须理解各模块作用。MobileNetV4利用UIB与Mobile MQA构建轻量主干,提升特征提取能力;BiFPN通过可学习权重完成双向多尺度融合,强化大、中、小目标的信息交互。两者优化Backbone与Neck,功能互补、结构冲突较少。本文提供代码、配置、消融对比及Codex修改思路,MobileNetV4也可替换其他主干,便于组合实验与二次创新

Snu77的博客 239

Android 视频播放器总结

isFront){//后录视频。}else{//前录视频。

zxfbhxgnc的博客 709

算法 | 植物根茎生长优化算法(PRGO)原理、公式及应用,matlab代码(2025最强优化算法)

【代码】算法 | 植物根茎生长优化算法(PRGO)原理、公式及应用,matlab代码(2025最强优化算法)

尘世冰封的专栏 1015

电视TV端使用RecyclerView开发遇到的问题

最近在做一个TV端使用的相册。偷偷展示一下,相册大概长这个样子: 相册也支持多选删除: 非删除模式下点击单一图片会进入单一图片展示界面。单一图片可以左右翻页。 从展示界面返回相册界面,光标定位到展示图片所在的相册位置。主要控件使用了CardView 和RecyclerView。 TV开发和手机开发有个不同的就是焦点问题。

Singleton1900的专栏 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

基于SQLiteDatabase的记事本例子

本例子是用数据库SQLiteDatabase类来存储记事本的数据的,实现了增、删、改、查功能。 增:ContentValues values = new ContentValues(); values.put("content", note.getContent()); values.put("time", note.getTime()); db.insert(MainActivity.T

fxjzzyo的博客 1505

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android反选,全选,删除

Android反选,全选,删除

LI0_0BIN的博客 1774

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

自定义ListView盘点-DragSortListView(4)

拖动排序的ListView,同时支持ListView滑动item删除,各个Item高度不一、单选、复选、CursorAdapter做为适配器、拖动背景变化等 项目地址:https://github.com/bauerca/drag-sort-listview Demo地址:https://play.google.com/store/apps/details?id=com.mobeta.andr

嘻哈包袱铺 专栏 784

android 全选功能,android基于ListView和CheckBox实现多选和全选记录的功能

应用开发中经常会有从数据库中读取数据显示,然后选中多条、全部记录并且删除的需求。在做定制系统联系人的时候也遇到这样的需求,下面写个简单的通过ListView和CheckBox实现多选、全选的例子。下面是具体的代码.效果如下:MultiSelectActivity/*** MultiSelectActivity*/public class MultiSelectActivity extends Ac...

weixin_36401794的博客 465
上一篇: GoF23种设计模式之结构型模式之代理模式
下一篇: Android定制组件之TitleBar之涂鸦
innovation
博客等级 码龄14年 251粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值