关于Adapter对数据库的查询、删除操作
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzIxMDYyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzIxMDYyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
先来看清空号码操作(第一个选项是清空所有、下面的是popupwindow动态填充电话号码。为清空单个号码通话记录)
/** 查询到单个号码的Sipaccount*/
if (mContactDailDetailAdapter != null) {
String currSipaccount = phoneList
.get(position - 1)
.getSipaccount(); /**从ui界面清楚该号码记录*/
mContactDailDetailAdapter
.deleVoipCall(
currSipaccount,
contactId);
try {
/**从数据库中删除*/
SQLiteManager
.getInstance()
.deleteUserVoipCallsByContactID(
contactId,
currSipaccount);
CASApplication
.getInstance()
.sendBroadcast(
CASIntent.ACTION_CALL_LOG_INIT);
} catch (ContactsException e) {
e.printStackTrace();
} /**最后刷新ui界面*/
mContactDailDetailAdapter
.notifyDataSetChanged();
}
然后看adapter里面怎样对清空进行操作的
/**清空单个号码的通话记录*/
public void deleVoipCall(String currSipaccount, long contactId) {
if (currSipaccount != null) {
List<CallsListItem> singlePhoneVoipCalls = null;
try {
/**从数据库中查询单个号码的通话记录。而且创建暂时的list集合*/
singlePhoneVoipCalls = SQLiteManager.getInstance()
.getUserVoipCallsByContactId(contactId, currSipaccount,
System.currentTimeMillis() + "",
Integer.MAX_VALUE);
} catch (ContactsException e) {
e.printStackTrace();
}
/**推断非空进行操作。直接从展现ui界面的data数据中移除调就可以*/
if (singlePhoneVoipCalls != null) {
if (userVoipCalls!=null) {
userVoipCalls.removeAll(singlePhoneVoipCalls);
}
}
} else {
Toast.makeText(context, "非国鼎注冊账号,暂无通话记录", 0).show();
}
} /**点击popup第一项调用的方法。直接clear数据集合*/
public void deleAllVoipCall() {
if (userVoipCalls!=null) {
userVoipCalls.clear();
}
}
--------------------------------------接下来看查询操作---------------------------------------
if (position == 0) {
/**查看某个联系人下的所以号码的通话记录*/
if (mContactDailDetailAdapter != null) {
/**从adapter里面进行操作*/
mContactDailDetailAdapter.queryAllVoipCall(contactId);
mContactDailDetailAdapter.notifyDataSetChanged();
} else {
Toast.makeText(ContactDailDetailActivity.this,
"通话记录列表为空", 0).show();
}
} else {
// position大于0时
if (mContactDailDetailAdapter != null) {
if (phoneList != null && phoneList.size() > 0) {
String currSipaccount = phoneList.get(position - 1)
.getSipaccount();
if (currSipaccount != null) {
mContactDailDetailAdapter.queryVoipCall(
contactId, currSipaccount);
mContactDailDetailAdapter
.notifyDataSetChanged();
} else {
/**假设不是正常号码,就直接清空ui界面*/
mContactDailDetailAdapter.deleAllVoipCall();
mContactDailDetailAdapter
.notifyDataSetChanged();
}
}
}
}
接下来看adapter里面的查询方法操作
public class ContactDailDetailAdapter extends BaseAdapter {
private List<Phone> phoneList;
private Context context;
private List<CallsListItem> userVoipCalls= new ArrayList<CallsListItem>();
public static int pos = -1;
private SlideListView mListView;
public ContactDailDetailAdapter(List<Phone> phoneList, Context context,
List<CallsListItem> userVoipCalls) {
this.phoneList = phoneList;
this.context = context;
this.userVoipCalls = userVoipCalls;
}
/**查询某联系人全部号码的通话记录*/
public void queryAllVoipCall(long contactId) {
try {
/**从数据库中获取该联系人全部号码的全部通话记录,并创建暂时的通话记录集合*/
List<CallsListItem> temp=SQLiteManager.getInstance().getUserVoipCallsByContactId(contactId,
null, System.currentTimeMillis() + "",
Integer.MAX_VALUE);
//推断非空并清空展示ui界面的data数据集合
if (userVoipCalls!=null) {
userVoipCalls.clear();
}
//推断非空。而且将暂时的记录加入到data数据集合
if(temp != null)
{
userVoipCalls.addAll(temp);
}
} catch (ContactsException e) {
e.printStackTrace();
}
}
// 查看号码的通话记录--同查询全部号码的通话记录方法一样
public void queryVoipCall(long contactId,String currSipaccount) {
if (currSipaccount != null) {
try {
List<CallsListItem> temp=SQLiteManager.getInstance().getUserVoipCallsByContactId(contactId,
currSipaccount, System.currentTimeMillis() + "",
Integer.MAX_VALUE);
if (userVoipCalls!=null) {
userVoipCalls.clear();
}
if(temp != null)
{
userVoipCalls.addAll(temp);
}
} catch (ContactsException e) {
e.printStackTrace();
}
}
}
关于Adapter对数据库的查询、删除操作的更多相关文章
- MyBatisPlus分页查询,删除操作
分页查询 分页查询在网页使用十分之多 原始的limit进行分页 pageHelper第三方插件 3. MP内置的分页插件 导入配置 如何使用,官网的代码如下 //分页插件 @Bean public P ...
- Redis 模糊查询删除操作
创建一条测试 数据 查询 创建:set name xiaoming 查询: get name 1.模糊搜索查询 Redis 模糊搜索 keys * 2.删除指定key : # 删除所有以user开头的 ...
- java jdbc 同时操作查询删除操作
Connection conn = null; try { // 创建连接实例 conn = JdbcUtility.GetFactory() ...
- mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...
- JAVA对数据库进行操作,实现数据库中数据的插入,查询,更改,删除操作
(—)通过mysql workbench 创建一个数据库,在这里命名为company,然后建一个tb_employee表 (二)以下是java代码对表tb_employee的操作 1 创建一个Empl ...
- DDL_操作数据库_创建&查询和DDL_操作数据库_修改&删除&使用
DDL操作数据库.表 1.操作数据库:CRUD C(Create):创建 创建数据库: create database 数据库名称: 创建数据库判断不存在再创建 create database if ...
- python中的MySQL数据库操作 连接 插入 查询 更新 操作
MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...
- Android数据库高手秘籍(六)——LitePal的改动和删除操作
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/40083685 在上一篇文章中,我们学会了使用LitePal进行存储数据的功能.确实 ...
- python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作
python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...
随机推荐
- rocketmq源码分析4-事务消息实现原理
为什么消息要具备事务能力 参见还是比较清晰的.简单的说 就是在你业务逻辑过程中,需要发送一条消息给订阅消息的人,但是期望是 此逻辑过程完全成功完成之后才能使订阅者收到消息.业务逻辑过程 假设是这样的: ...
- ubuntu14.04 不能关机,一直停在关机界面
1.emotion: 最近在使用Ubuntu14.04 LTS时,输入shutdown -h now之后,Ubuntu就一直停在关机界面,始终不能shutdown,不得不手动按下电源button.忍受 ...
- javascript学习笔记 - 引用类型 Object
引用类型是一种数据结构,也称作对象定义,类似于类的概念. 对象是引用类型的实例. javascript引用类型有:Object, Array, Date, RegExp, Function 使用new ...
- onclick跳转到其他页面的几种方式
如果是本页显示可以直接用location,方法如下: ①onclick="javascript:window.location.href='URL'" ②onclick=" ...
- 皮尔逊相关系数的计算(python代码版)
from math import sqrt def multipl(a,b): sumofab=0.0 for i in range(len(a)): temp=a[i]*b[i] sumofab+= ...
- BZOJ 4584 [Apio2016]赛艇 ——动态规划
Subtask 1 直接$N^2$ $DP$,就可以了 Subtask 2 用$f[i][j]$表示当前位置为$i$,结束元素为$j$的方案数. Subtask 3 看下面 Subtask 4 首先可 ...
- [luoguP2463] [SDOI2008]Sandy的卡片(后缀数组 + st表)
传送门 很容易想到,题目中的相同是指差分数组相同. 那么可以把差分数组连起来,中间加上一个没有出现过的且字典序小的数 双指针移动,用st表维护height数组中的最小值. 当然用单调队列应该也可以且更 ...
- Spring和redis简单测试demo
1.1 首先创建一个Maven工程 File --> New --> Other,然后选择Maven目录下的Maven Project,如下图: 然后在弹出的面板中选择配置后,下一步即可, ...
- 刷题总结———长跑路径(ssoj1982)
题目: 给定一个无向图···求特定几个点中两两间的最短路中的最小值····其中1≤N,M≤100000:T≤5:1≤K≤n:1≤边长≤100000,T为一个测试点的测试数··k为测试点数量 题解: 我 ...
- bzoj 4295 [PA2015]Hazard 贪心,暴力
[PA2015]Hazard Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 69 Solved: 19[Submit][Status][Discus ...