问答文章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

SqlConnection sql = new SqlConnection("连接字符串");
SqlCommand cmd = new SqlCommand("SQL查询语句", sql);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet("DataSet名字");
da.Fill(ds);

刚写的,希望楼主顺利。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中支黄金叶什么价 怎么在整个PPT中加入背景音乐,而不是在一张幻灯片中插入,我要的是从... 构造柱有哪些构造措施 中国风的女式花裤配什么鞋 留抵抵税额是什么意思 留抵税抵什么意思 ...里发现很多门店装修和华为一样的,但是官网查不到,这种店铺购买... 墙布贴了关窗多久 墙布贴了要关窗多久 墙布贴好要多久密闭多久 35岁混油皮适合的护肤品- 问一问 瑞隆安新会陈皮嚼着吃有什么作用? 读书郎w3t电话手表刚买了一从手上取下来时不小心掉地上了屏幕就破了,屏幕质量这么差的,屏幕能更换吗 读书郎屏幕更换用什么胶? 读书郎屏幕碎了怎么换 接信息没有声音什么原因 苹果手表S7连手机蓝牙后,手机听不见声音 华为手机接听不到声音为什么? 甜酒是怎样做成的? 怎么做甜酒 糯米甜酒的制作方法? 甜酒怎么做?需要什么材料或工具?过程怎么弄?请讲清楚点哦~~~ 威士忌不加冰块喝行吗?我在的地方没有冰块也没有冰箱 DataAdapter 增删改查问题 冰敷没有冰块用冰水代替可以吗 脚崴了没有冰怎么办 手烫伤 没有冰块怎么办 冷敷必须是冰块吗?没有冰块怎么办 为什么速冻水饺从冰箱里拿出来,上面冰着很多冰块?但是同一时间买的速冻煎饺,拿出来,却没有冰块? 没有冰块能不能用鸡蛋? 假如没有冰块,可以用冰箱里的刨冰拿来冰敷吗? oppo手机碰到屏幕上方就黑屏 oppo一碰手机顶部就黑屏怎么设置 我家孩子接触毛绒玩具身上起红疙瘩,是不是过敏 我家孩子接触毛绒玩具身上起红疙瘩,是不是过敏呀? 毛绒玩具过敏起红包怎么办 oppo手机顶部一碰到就黑屏 宝宝对毛绒玩具过敏了怎么办,急解 opporeno6手机一触碰就黑屏怎么办? 对毛绒玩具过敏怎么治呀? 魅族16t真的很好对吗? 孩子老爱玩毛绒玩具,可玩了就过敏,不给玩吧就哭请问各位高手有事么解决办法?谢谢啊! 对毛绒玩具过敏的人,又想玩,该如何做才能既能玩又不过敏? oppo手机一进去就黑屏,应该怎么办 1岁半宝宝可以玩毛绒玩具吗 为什么毛绒玩具有很多螨虫 新买的毛绒玩具送给女朋友,谁知道她接触之后全身都痒,是不是过敏呢? 穿紧身裤的时候,下面会不会显得大 我是个很瘦的女生,为什么我穿紧身裤时,那儿显不出来,我看别的女生凸的,是咋回事? 孩子是过敏体质怎么办,可以用这个益生菌改善吗? 你好,我想问一下,联通4G手机卡能升级到5G吗