关于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 ├ ...
随机推荐
- python中用exit退出程序
在python中运行一段代码,如果在某处已经完成整次任务,可以用exit退出整个运行.并且还可以在exit()的括号里加入自己退出程序打印说明.不过注意在py3中要加单引号或双引号哦!
- [git 学习篇] --创建git创库
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d ...
- 【Luogu】P3787冰精冻西瓜(线段树)
题目链接 我脑子怕不是有坑qwqqq 用前缀和思想,dis[i]表示i离根的距离,那么修改操作其实是对x的子树区间加y/dis[x],查询的时候*dis[to]即可. 对付/0错的思路是建森林,然而这 ...
- [LOJ#114]k 大异或和
[LOJ#114]k 大异或和 试题描述 这是一道模板题. 给由 n 个数组成的一个可重集 S,每次给定一个数 k,求一个集合 T⊆S,使得集合 T 在 S 的所有非空子集的不同的异或和中,其异或和 ...
- BZOJ3990 [SDOI2015]排序 【搜索】
题目 小A有一个1-2^N的排列A[1..2^N],他希望将A数组从小到大排序,小A可以执行的操作有N种,每种操作最多可以执行一次,对于所有的i(1<=i<=N),第i中操作为将序列从左到 ...
- node命令行开发
node命令行开发比较出名的就是commander和yargs,以及inquirer,但是很少有文章将三个模块进行对比. 这里简单的描述一下: 1. commander直观,易上手,但是功能较弱,没有 ...
- 学习orm框架及一些看法
首先说说我对现在主流的ORM框架的一些看法: 优点: 让程序员不再关注数据库细节,专心在业务逻辑上,程序员可以不懂数据库就可以开发系统. 让数据库迁移变的非常方便,如果系统需要更改使用的数据库,直接改 ...
- mac上安装chromedriver
默认下载2.35版本,放置到/usr/local/bin #!/usr/bin/env bash # ------------------------------------------------- ...
- bzoj 2437[Noi2011]兔兔与蛋蛋 黑白染色二分图+博弈+匈牙利新姿势
noi2011 兔兔与蛋蛋 题目大意 直接看原题吧 就是\(n*m\)的格子上有一些白棋和一些黑棋和唯一一个空格 兔兔先手,蛋蛋后手 兔兔要把与空格相邻的其中一个白棋移到空格里 蛋蛋要把与空格相邻的其 ...
- poj 1981 Circle and Points
Circle and Points Time Limit: 5000MS Memory Limit: 30000K Total Submissions: 8131 Accepted: 2899 ...