关于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 ├ ...
随机推荐
- Xpath - Xpath定位
selenium 提供的xpath定位方法名为:find_element_by_xpath(xpath表达式) Xpath基本定位语法: / 绝对定位,从根节点选取 // 相对定位,从匹配选择的当前 ...
- 正在创建模型,此时不可使用上下文“的解决办法。 正在创建模型,此时不可使用上下文。如果在 OnModelCreating 方法内使用上下文或如果多个线程同时访问同一上下文实例,可能引发此异常。请注意不
//默认为: Database.SetInitializer<testContext>(null);//这里报错, 检查原因:catch(Exception ex) 错误提示: 基础连接未 ...
- linux快速查看同局域网的其他在线主机
安装一个nmap工具,直接 nmap -sP 192.168.1.1/24 即可
- Matplotlib中文乱码解决办法
Matplotlib中文乱码 解决方法如下: 首先设置源码文件编码方式为UTF-8 #-*- coding: utf-8 -*- 接着设置字体属性字典 font = {'family': 'SimHe ...
- [adb 学习篇] python将adb命令集合到一个工具上
https://testerhome.com/topics/6938 qzhi的更全面,不过意思是一样的,另外补充一个开源的https://github.com/264768502/adb_wrapp ...
- Graham扫描法 --求凸包
前言: 首先,什么是凸包? 假设平面上有p0~p12共13个点,过某些点作一个多边形,使这个多边形能把所有点都“包”起来.当这个多边形是凸多边形的时候,我们就叫它“凸包”.如下图: 然后,什么是凸包 ...
- java反射的基本使用
反射机制是java中非常重要的功能,熟练使用反射功能对实际的开发有很大的帮助. 一,通过反射获取对象实例 使用的对象User package whroid.java.reflect; public c ...
- JSON之解析
JSON之解析通过TouchJSON\SBJSON\JSONKit\NSJSONSerialization JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 ...
- Redis 复制功能的几个重要方面
Redis 复制功能的几个重要方面:1. 一个Master可以有多个Slave:2. Redis使用异步复制.从2.8开始,Slave会周期性(每秒一次)发起一个Ack确认复制流(replicatio ...
- BZOJ2324 [ZJOI2011]营救皮卡丘 【费用流】
题目 皮卡丘被火箭队用邪恶的计谋抢走了!这三个坏家伙还给小智留下了赤果果的挑衅!为了皮卡丘,也为了正义,小智和他的朋友们义不容辞的踏上了营救皮卡丘的道路. 火箭队一共有N个据点,据点之间存在M条双向道 ...