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对数据库的查询、删除操作的更多相关文章

  1. MyBatisPlus分页查询,删除操作

    分页查询 分页查询在网页使用十分之多 原始的limit进行分页 pageHelper第三方插件 3. MP内置的分页插件 导入配置 如何使用,官网的代码如下 //分页插件 @Bean public P ...

  2. Redis 模糊查询删除操作

    创建一条测试 数据 查询 创建:set name xiaoming 查询: get name 1.模糊搜索查询 Redis 模糊搜索 keys * 2.删除指定key : # 删除所有以user开头的 ...

  3. java jdbc 同时操作查询删除操作

    Connection conn = null;        try {            // 创建连接实例            conn = JdbcUtility.GetFactory() ...

  4. mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?

      本文是记录Java中实现批量删除操作(Java对数据库进行事务处理),在开始之前先来看下面这样的一个页面图: 上面这张图片显示的是从数据库中查询出的出租信息,信息中进行了分页处理,然后每行的前面提 ...

  5. JAVA对数据库进行操作,实现数据库中数据的插入,查询,更改,删除操作

    (—)通过mysql workbench 创建一个数据库,在这里命名为company,然后建一个tb_employee表 (二)以下是java代码对表tb_employee的操作 1 创建一个Empl ...

  6. DDL_操作数据库_创建&查询和DDL_操作数据库_修改&删除&使用

    DDL操作数据库.表 1.操作数据库:CRUD C(Create):创建 创建数据库: create database 数据库名称: 创建数据库判断不存在再创建 create database if ...

  7. python中的MySQL数据库操作 连接 插入 查询 更新 操作

    MySQL数据库 就数据库而言,连接之后就要对其操作.但是,目前那个名字叫做qiwsirtest的数据仅仅是空架子,没有什么可操作的,要操作它,就必须在里面建立“表”,什么是数据库的表呢?下面摘抄自维 ...

  8. Android数据库高手秘籍(六)——LitePal的改动和删除操作

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/40083685 在上一篇文章中,我们学会了使用LitePal进行存储数据的功能.确实 ...

  9. python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作

    python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...

随机推荐

  1. python学习-- Django根据现有数据库,自动生成models模型文件

    Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...

  2. Tensorflow 自适应学习速率

    Tensorflow 自适应学习速率 在模型的初期的时候,往往设置为较大的学习速率比较好,因为距离极值点比较远,较大的学习速率可以快速靠近极值点:而,后期,由于已经靠近极值点,模型快收敛了,此时,采用 ...

  3. 面试问题整理Andorid版本 date: 2017-1-12 21:14:36 categories: 技术

    Acitivty的四中启动模式与特点. standard:默认的启动模式 singleTop:适合那种接受通知启动的页面,比如新闻客户端之类的,可能会给你推送好几次 ,但是每次都是打开同一张页面调用o ...

  4. docker容器为什么可以跨平台部署

    docker镜像和操作系统没关系,docker最大的价值就是提出了镜像打包技术.首先你的明白什么是docker,什么是镜像,什么是容器,然后你就能明白镜像和操作系统之间的关系.docker是一个引擎, ...

  5. 【转】[译]深入理解JVM

    http://www.cnblogs.com/enjiex/p/5079338.html 深入理解JVM 原文链接:http://www.cubrid.org/blog/dev-platform/un ...

  6. 【Luogu】P2634聪聪可可(树形DP)

    题目链接 水题,时限放得非常宽,暴力DP随便套上一波register就能卡过去. 唯一的遗憾是5A. 树形DP,s[i][j]表示以i为根的子树里距i的距离%3=j的点数,f[i]表示i为根的子树内一 ...

  7. HDU——1061Rightmost Digit(高次方,找规律)

    Rightmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. 洛谷 [P2859] 摊位预定

    贪心 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm ...

  9. C语言第三题

    1.完成char *p,char *q 的字符串比较,相等返回1,错误返回-1 2.用户需要计算的2个20位数数字的加法,写程序实现让用户输入两个20位以上的数字并且相加,输出结果

  10. JQuery Option 排序

    <script type="text/javascript"> $(document).ready(function () { $("select" ...