- 浏览: 199007 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
guoshijie1990:
写的不错
Android Https通信 -
xiaochi_84:
你好,我想问一下。为什么我在java工程里测试没有问题。但是到 ...
Android导出xls文件 -
Visual_chenpeng:
Android Https通信 -
jasonpeak:
求jasonpeak 写道我的为什么按返回键还是不关闭呢?求破 ...
Android关于ProgressDialog按返回键关闭 -
jasonpeak:
我的为什么按返回键还是不关闭呢?
Android关于ProgressDialog按返回键关闭
前段时间在做一个项目的后期维护时,对方提出了把短信做成可以批量删除、、然后冥思苦想,终于想到了一个可执行方案、、那边的要求时这样的、、进入短信的草稿箱,然后点击一条短信,弹出批量删除对话框,然后有一个全选框,可以进行多项选择,进行删除、、、、
实现过程如下:首先建立一个主布局文件,主要有两个listview,然后是4个按钮,我们要做的是把四个按钮中的3个设为不可见,一个设为可见,listview也是只有一个可见,其他三个设为不可见
主xml文件:sms_store.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <include layout="@layout/head" /> <!-- 动态显示界面 --> <LinearLayout android:id="@+id/body" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="0.95" android:orientation="vertical" android:background="#F5F8FD" > <ListView android:id="@+id/smslist" android:layout_width="fill_parent" android:layout_height="wrap_content" android:visibility="visible"/> <!-- 批量删除下的列表 --> <ListView android:id="@+id/smslist2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:visibility="gone"/> </LinearLayout> <include layout="@layout/sms_foot" /> </LinearLayout>
sms_foot.xml文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/bottomlist" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/tab_botton" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/btn_choceall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bt_background" android:gravity="center" android:text="全标记" android:textColor="#ffffffff" android:visibility="gone" android:width="50dp" android:layout_weight="1"/> <Button android:id="@+id/btn_delete" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bt_background" android:gravity="center" android:text="删除" android:layout_weight="1" android:textColor="#ffffffff" android:visibility="gone" android:width="50dp"/> <Button android:id="@+id/backbefore" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bt_background" android:gravity="center" android:text="返回" android:layout_weight="1" android:textColor="#ffffffff" android:visibility="gone" android:width="50dp"/> </LinearLayout> <Button android:id="@+id/smsback" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bt_background" android:gravity="center" android:layout_gravity="right" android:text="返回" android:textColor="#ffffffff" android:visibility="visible" android:width="50dp"/> </LinearLayout>
接下载建立两个listview的主体,一个是普通的文本,一个是多选框的文本
smslist.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="25dip" android:ellipsize="end" android:singleLine="true" android:textColor="@color/black" android:text="TextView" /> </LinearLayout>
sms_delete.xml
<?xml version="1.0" encoding="utf-8"?> <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" android:checkMark="?android:attr/listChoiceIndicatorMultiple" android:ellipsize="end" android:singleLine="true" android:textColor="@color/black" android:textSize="20dip" > </CheckedTextView>
在Activity里面建立
Button smsback, smsbackbrfore,btChoseall, btDelete;
ListView listv, listv2;
并且setContentView(R.layout.sms_store);
然后findid一下
smsback = (Button) findViewById(R.id.smsback);
smsbackbrfore = (Button) findViewById(R.id.backbefore);
btChoseall = (Button) findViewById(R.id.btn_choceall);// 全选按钮
btDelete = (Button) findViewById(R.id.btn_delete);// 删除按钮
listv = (ListView) findViewById(R.id.smslist);
listv2 = (ListView) findViewById(R.id.smslist2);
然后创建一个方法更新视图
private void updataview() {
listv.setVisibility(View.VISIBLE);
smsback.setVisibility(View.VISIBLE);
listv2.setVisibility(View.GONE);
smsbackbrfore.setVisibility(View.GONE);
btChoseall.setVisibility(View.GONE);
btDelete.setVisibility(View.GONE);
list = getData(status);
if (list == null) {
// 表示没有数据,显示数据为空
} else {
// 表示有数据
listViewAdapter = new ListViewAdapter(MsgStoreActivity.this, list,
R.layout.smslist, new String[] { "content" },
new int[] { R.id.title });
listv.setAdapter(listViewAdapter);
}
}
得到数据库的返回数据
private List<Map<String, String>> getData(String status) {
Cursor cursor = new DatabaseHelper().fetchData(MsgStoreActivity.this,
DataDefine.TABLE_MSG, Integer.valueOf(status));
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
int i = 1;
System.out.println(cursor.getCount());
if (cursor != null && cursor.getCount() > 0) {
// 有数据
do {
Map<String, String> map = new HashMap<String, String>();
map.put("id", cursor.getString(cursor
.getColumnIndex(DataDefine.KEY_MSG_ID_AUTO_INCREMENT)));
String s = cursor.getString(cursor
.getColumnIndex(DataDefine.KEY_MSG_CONTENT));
// if(s.length()>10){
// s=s.substring(0,10)+"......";
// }
map.put("content", (i++) + ". " + s);
list.add(map);
} while (cursor.moveToNext());
cursor.close();
return list;
} else {
cursor.close();
Map<String, String> map = new HashMap<String, String>();
map.put("id", null);
map.put("content", "当前没有短信!");
list.add(map);
return list;
}
}
当点击批量删除时
listv.setVisibility(View.GONE);
smsback.setVisibility(View.GONE);
listv2.setVisibility(View.VISIBLE);
smsbackbrfore.setVisibility(View.VISIBLE);
btChoseall.setVisibility(View.VISIBLE);
btDelete.setVisibility(View.VISIBLE);
ListViewAdapter adapter = new ListViewAdapter(MsgStoreActivity.this, list, R.layout.sms_delete,
new String[] { "content" }, new int[] { R.id.content });
listv2.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listv2.setAdapter(adapter);
创建删除和全选按钮事件
btChoseall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckedTextView cv;
for (int i = 0; i < listv2.getCount(); i++) {
cv = (CheckedTextView) listv2.getChildAt(i);
cv.setChecked(true);
}
}
});
btDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CheckedTextView cv;
int count = 0;
for (int i = 0; i < listv2.getCount(); i++) {
cv = (CheckedTextView) listv2.getChildAt(i);
if (cv.isChecked()) {
count = 1;
break;
}
}
if (count == 1)
adDelete.show();
else
showToast(MsgStoreActivity.this, "未选中信息!");
}
});
创建删除按钮点击后的弹出对话框事件
adDelete = new AlertDialog.Builder(MsgStoreActivity.this)
.setTitle("删除").setMessage("确定要删除信息?")
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
CheckedTextView cv;
for (int i = 0; i < listv2.getCount(); i++) {
cv = (CheckedTextView) listv2.getChildAt(i);
if (cv.isChecked()) {
Map<?, ?> map = (Map<?, ?>) listv.getAdapter()
.getItem(i);
new DatabaseHelper().delete(
MsgStoreActivity.this,
Integer.valueOf((String) map.get("id")));
}
}
showToast(MsgStoreActivity.this, "信息已删除!");
updataview();
}
}).create();
发表评论
-
Android获取设备信息
2012-11-22 00:10 1382转http://blog.csdn.net/gumanr ... -
Android列表索引实现
2012-07-15 10:47 6682最近做一个项目用到了列表索引,所以在网上找了一下,发现一个博客 ... -
Android开发环境搭建(Windows)
2012-07-03 13:37 784什么都不说来,直接下载附件好了,这个图文的不好发布 -
Linux下Android环境搭建
2012-07-03 13:34 1228--以Ubuntu为例 Linux下Android环境 ... -
Android ListView 滑动背景为黑色的解决办法
2012-06-28 22:08 1062转至:http://blog.163.com/zh ... -
Android蓝牙开发
2012-06-26 15:38 1509今天查了一些资料,然后发现一篇文章挺好,关于蓝牙的,原文网址: ... -
Android自定义对话框
2012-06-22 11:36 2492这时我封装的一个对话框工具类 package com. ... -
Android语音采集
2012-06-18 10:55 15555Android端的语音采集主要是调用AudioRecord,首 ... -
Android语音识别
2012-06-18 09:28 2265Android由于有了Google的支持,那么他的语音识别做起 ... -
Android监控
2012-06-08 20:04 1479Android的监控一般都是需要用到Jni的,然后进行NDK编 ... -
Android视频播放
2012-05-24 19:55 1893视频播放优好多种,一种是播放系统可以播放的视频文件,一种是播放 ... -
重写android返回键
2012-05-24 19:23 21904在Activity里面加入下面代码: @Overrid ... -
Android图像处理工具类
2012-04-09 09:37 2513还是最近整理代码、、发现了一个师兄写的图片工具类,感觉还是蛮有 ... -
Android导出xls文件
2012-04-08 15:45 6599整理硬盘的时候找到了这些代码,看了一下,发现还有点用处,所以就 ... -
android的文字跑马灯效果
2012-04-03 21:04 7304今天问了解决文本内容过长的显示问题,而用了一个android自 ... -
Android超级简单的TabView实现
2012-04-03 20:56 7165可能很多人都有想要实现一个导航栏,但是不知道改怎么弄,因为an ... -
ImageView的属性android:scaleType
2012-04-03 20:04 2047ImageView的属性android:scaleType ... -
关于Android程序的全屏显示
2012-04-03 19:53 1004对于Android开发来说,全屏和无标题是我们常用的几行代码, ... -
Android文件下载
2012-03-19 16:45 1360嘿嘿,也不知道什么时候写的代码,清理硬盘的时候发现了,而且还能 ... -
Android视图的截图
2012-03-19 16:38 6892在pc上的截图软件很多,但是android上的比较少,所以就自 ...
相关推荐
在Android平台上,开发一个短信筛选和批量删除程序是一项常见的需求,尤其对于那些经常接收大量信息的用户来说。本文将深入探讨如何为Android 2.3到4.4版本的设备构建这样的应用程序,涵盖的主要知识点包括Android ...
1. **批量删除**:在会话列表中,你可以通过多选功能来批量删除短信。通常,长按一条短信后,屏幕顶部会出现“多选”选项,勾选需要删除的短信,最后点击“删除”。 2. **设置自动删除**:进入手机的“设置” -> ...
这个"Android 一个批量删除联系人的Demo.zip"提供了一个实例,展示了如何在Android应用中实现批量删除联系人的功能。接下来,我们将深入探讨这个Demo涉及的核心知识点。 1. **Android权限**: 在Android系统中,对...
Android例子源码可以定时批量发送短信的短信时光机是一个可以自定义定时批量短信发送例子源码(类似于短信时光机),编辑的短信可以一键选择多个联系人进行定时发送,批量发送祝福短信这种情况在节假日是普遍存在的...
Android例子源码可以定时批量发送短信的短信时光机是一个可以自定义定时批量短信发送例子源码(类似于短信时光机),编辑的短信可以一键选择多个联系人进行定时发送,批量发送祝福短信这种情况在节假日是普遍存在的...
这个“SMS.rar”压缩包文件似乎包含了一个自定义开发的Android短信收发系统,适用于特定的办公或业务需求。下面,我们将深入探讨Android SMS相关的技术知识,以及如何构建这样的系统。 一、Android SMS API ...
2. **批量删除**:如果需要删除同一会话或特定联系人的所有短信,可以使用批量选择功能,一次性清理。 3. **自动清理**:许多手机有自动清理功能,如设定保留最近的一定数量的短信,超过则自动删除较旧的。 4. **...
SmsManager提供了发送文字短信、彩信以及批量发送短信的接口。例如,要发送一条短信,你需要获取SmsManager的实例,然后调用sendTextMessage方法,传入接收方电话号码、短信内容以及发送状态回调的BroadcastReceiver...
这种设计极大地简化了短信的批量处理,例如,用户可以一次性删除特定号码的所有短信,避免了在手机上逐条操作的繁琐。 系统的主要功能包括: 1. **系统登录**:用户需要通过Web界面登录自己的账户,确保只有授权的...
在Android系统中,SIM卡联系人是用户存储在手机SIM卡上的电话号码和联系信息,它们与手机内置的联系人存储区分开。本教程将详细讲解如何进行SIM卡联系人的增删改查操作,以及如何利用`ContentObserver`来监听联系人...
2. 自定义对话框:为了提供更好的用户体验,项目采用了自定义对话框来处理如打电话、发短信和批量删除等操作。自定义对话框可以按照设计需求定制样式和功能,提高应用的交互性和美观性。 3. Android Content ...
通过执行SQL语句,可以实现对特定短信的删除,或者批量删除选定的短信。 接下来,项目的一个亮点是与联系人的集成。SimpleSMSManager不仅能够提取系统联系人的电话号码,还能够展示联系人的头像。这涉及到对Android...
在这个简单的Android程序中,重点是实现用户批量删除的操作,这对于数据管理和用户隐私保护具有重要意义。 首先,让我们详细探讨登录和注册流程。在Android应用中,登录通常涉及到以下几个步骤: 1. 用户界面:...
这个项目的核心在于利用Android平台开发一个实用且易于理解的学生管理应用,主要功能包括短信群发和JSON数据批量导入数据库。 一、Android平台介绍 Android是Google主导开发的开源移动操作系统,广泛应用于智能手机...
用户可以通过该助手整合和备份联系人信息,防止丢失,并能方便地管理短信,包括批量删除、分类或搜索特定信息。 电源管理是Android手机助手的另一个亮点,它能智能分析各个应用的耗电情况,提供电池使用报告,并给...
在实际开发中,你可能还需要处理诸如CheckBox选中状态的同步、ListView滚动时的状态保持、以及批量操作(如一键发送短信给所有选中联系人)等功能。 总的来说,这个项目是一个集成短信发送和数据库管理的Android...
- 签名管理:查询、创建、删除短信签名。 ### 5. 注意事项 在实际使用过程中,确保遵循腾讯云的使用政策,防止恶意发送或滥用短信服务。另外,对于敏感操作(如批量发送、修改模板),建议使用沙箱环境测试,避免...
Android 手机卫士系统是指一款旨在帮助用户更加方便使用手机的系统,该系统主要包括显示系统软件和本地软件的详细信息,删除应用程序,结束进程,清理缓存以便手机运行的更流畅;通讯录添加黑名单可以帮助用户免...
- 使用批量操作提高插入、更新和删除效率,例如:SQLiteStatement对象的executeInsert()和executeUpdateDelete()方法。 7. 数据备份与恢复: - 使用adb工具进行数据库文件的备份和恢复。 - 利用SQLite的ATTACH ...
需要注意的是,由于运营商和国家政策的限制,批量发送短信可能会触发安全机制,导致发送失败或被限制。因此,在实际应用中,可能需要设置合理的发送间隔或使用第三方服务。 4. **权限管理**:在Android 6.0(API...