先来看清空号码操作(第一个选项是清空所有、下面的是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();}}}

转载于:https://www.cnblogs.com/brucemengbm/p/6791760.html

关于Adapter对数据库的查询、删除操作相关推荐

  1. python数据库模糊查询_Python操作mongodb数据库进行模糊查询操作示例

    本文实例讲述了Python操作mongodb数据库进行模糊查询操作.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pymongo import re ...

  2. MySQL数据库创建及删除操作

    创建数据库及查看数据库相关信息: create database db1; use db1; show create database db1; create database db2 CHARACT ...

  3. 达梦数据库查询与操作

    一.阐述达梦数据库的查询和操作 数据库查询是指在数据库中查询所需数据的过程.它是通过指定一组查询条件来获取数据库中的数据.这些查询条件可以是各种各样的,例如输入关键字.选择特定的字段.限制返回记录的数 ...

  4. python操作mysql数据库 内存占用100_python操作MySQL数据库

    python标准数据库接口为Python DB-API,为开发人员提供了数据库应用编程接口 DB-API是一个规范,定义了一系列必须的对象和数据库存取方式, 便于各种各样的底层数据库系统和多种多样的数 ...

  5. 红橙Darren视频笔记 条件查询 删除 更新,数据库结合http做缓存机制(数据库操作)下

    查询 更新 删除的实现 修改IDaoSupport接口部分 删除查询部分 增加返回查询支持类接口 增加删除更新的接口 // 获取专门查询的支持类 按照语句查询QuerySupport<T> ...

  6. python查询mysql数据库_python针对mysql数据库的连接、查询、更新、删除操作示例...

    本文实例讲述了python针对mysql数据库的连接.查询.更新.删除操作.分享给大家供大家参考,具体如下: 连接 一 代码 import pymysql # 打开数据库连接 db = pymysql ...

  7. WEB数据库管理平台kb-dms:数据库查询+更新+删除操作【六】

    数据库查询+更新+删除操作 kb-dms平台为用户提供了命令行窗口执行的功能可以进行查询等操作,还提供了快捷键的方式及在线编辑的功能等. 窗口命令行操作数据库 命令行窗口有表名提示功能及sql关键字提 ...

  8. MySQL学习笔记04【数据库的查询操作、今日内容、表的约束】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  9. 31-32 python mysql-connector创建数据、crud,where,排序,删除等。PyMSQL驱动,插入操作、查询操作、更新操作、删除操作、执行

    31Python MysSQL - mysql-connector驱动 使用pip命令安装mysql-connector: python -m pip install mysql-connector ...

最新文章

  1. 9、linux内存管理子系统
  2. python中的if not语句_python中使用if not x 语句用法
  3. leafLet API 中文文档翻译
  4. namespace 或The content of element type mapper must match EMPTY
  5. Go语言开发环境配置
  6. shellcraft新姿势
  7. 安卓案例:线性布局嵌套
  8. Python (schedule库)简单使用
  9. 基于51单片机的音乐播放器
  10. DMA映射 dma_addr_t
  11. springboot配置logback日志
  12. java实现gdal栅格矢量化_gdal栅格矢量化 - osc_lfs4vsih的个人空间 - OSCHINA - 中文开源技术交流社区...
  13. css white-space属性总结
  14. 网易云音乐评论墙php源码,网易云音乐热评墙那些令人感慨的句子,哪一句打动了你?...
  15. 9、法律法规与标准化知识
  16. Git帝国之tag大臣
  17. 诺基亚Lumia630传感器并未缩水
  18. Android通讯录模糊查询搜索(号码,姓名,首字母简拼,全拼),批量选取联系人
  19. 如何解决”/”应用程序中的服务器错误
  20. verify_area

热门文章

  1. 人类已无法阻挡AI?围棋后AI再破最强人类堡垒,通杀智力比赛
  2. 简述Python的Numpy,SciPy和Pandas,Matplotlib的区别
  3. 国内C/C++刷题网站汇总
  4. 055_Unicode字符官方标准六
  5. 009_Raphael动画
  6. webapi添加html页面,如何从WebApi动作返回html页面?
  7. linux 安装go编译器,CentOS 7 安装 go 语言开发环境
  8. ds28e01完全数据手册_如何借助《活动管理手册》搭建营销体系?(内含课件PPT)...
  9. java 多线程经典例子——生产者与消费者的问题
  10. setDrawingCacheEnabled(boolean flag)