问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

DataAdapter 增删改查问题

发布网友 发布时间:2022-04-07 21:38

我来回答

2个回答

懂视网 时间:2022-04-08 02:00

技术分享

技术分享


先来看清空号码操作(第一个选项是清空全部、以下的是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对数据库的查询、删除操作

标签:adapter query delete

热心网友 时间:2022-04-07 23:08

先对操作的DataSet中的表进行 add edit 或是delete
操作,注意要先用beginedit() endedit()控制

当datatable的改变后 用DataAdapter更新,它就会自动根据datatable的行状态进行相关的数据操作了..
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
AFK半年后回归WOW,但发现好多东西搞不清楚了,求指教,多问题高分_百度知 ... wow85级什么本可以打378的猎人饰品 落花流水(打一动物)谜底及原因 办理买房按揭贷款需要多长时间啊 一手房如何办按揭 一手房按揭贷款申请条件 怎么把微信好友转移到另一个微信号上? 高铁站没有身份证可以进站吗 京东Plus会员每月优惠券去哪领?Plus会员哪里买最便宜? 京东plus会员优惠券在哪里领?怎么用? 冰敷没有冰块用冰水代替可以吗 脚崴了没有冰怎么办 手烫伤 没有冰块怎么办 冷敷必须是冰块吗?没有冰块怎么办 为什么速冻水饺从冰箱里拿出来,上面冰着很多冰块?但是同一时间买的速冻煎饺,拿出来,却没有冰块? 没有冰块能不能用鸡蛋? 假如没有冰块,可以用冰箱里的刨冰拿来冰敷吗? 没有冰块怎么让水变冷 古代没有“肥宅快乐水”也没有冰块,夏天的时候他们都怎么办? 脚扭伤了,可是家里没有冰块,怎么办 电子邮件地址怎么写?帐户名称怎么写? 电子邮件的地址怎么写呢? 电子邮件地址怎么写的,谢谢 apple id已锁定 要解除账户 怎样通过电子邮件解锁 已发送解锁电子邮件 在‘_百度问一问 apple ID已被锁定,然后解锁的方式是发送到me.com结尾的电子邮件中 在iPhone ID*时,为了解封ID而设置邮箱时,邮箱应该如何填写? 锐斯丹顿制冰机怎么操作使用? 急需制冰机说明书 韩克斯yT-E-004A制冰机操作过程? 苹果手机的微信运动的步数怎么记录? 威士忌不加冰块喝行吗?我在的地方没有冰块也没有冰箱 甜酒怎么做?需要什么材料或工具?过程怎么弄?请讲清楚点哦~~~ 怎么做甜酒 糯米甜酒的制作方法? 甜酒是怎样做成的? 华为手机接听不到声音为什么? 苹果手表S7连手机蓝牙后,手机听不见声音 接信息没有声音什么原因 读书郎屏幕碎了怎么换 读书郎屏幕更换用什么胶? 读书郎w3t电话手表刚买了一从手上取下来时不小心掉地上了屏幕就破了,屏幕质量这么差的,屏幕能更换吗 瑞隆安新会陈皮嚼着吃有什么作用? 35岁混油皮适合的护肤品- 问一问 速度啊!使用dataadapter对象对数据库进行查询步骤 oppo手机碰到屏幕上方就黑屏 oppo一碰手机顶部就黑屏怎么设置 我家孩子接触毛绒玩具身上起红疙瘩,是不是过敏 我家孩子接触毛绒玩具身上起红疙瘩,是不是过敏呀? 毛绒玩具过敏起红包怎么办 oppo手机顶部一碰到就黑屏 宝宝对毛绒玩具过敏了怎么办,急解