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


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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值