关于Adapter对数据库的查询、删除操作
生活随笔
收集整理的這篇文章主要介紹了
关于Adapter对数据库的查询、删除操作
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
先來看清空號碼操作(第一個(gè)選項(xiàng)是清空所有、下面的是popupwindow動態(tài)填充電話號碼。為清空單個(gè)號碼通話記錄)
/** 查詢到單個(gè)號碼的Sipaccount*/if (mContactDailDetailAdapter != null) {String currSipaccount = phoneList.get(position - 1).getSipaccount();/**從ui界面清楚該號碼記錄*/mContactDailDetailAdapter.deleVoipCall(currSipaccount,contactId);try {/**從數(shù)據(jù)庫中刪除*/SQLiteManager.getInstance().deleteUserVoipCallsByContactID(contactId,currSipaccount);CASApplication.getInstance().sendBroadcast(CASIntent.ACTION_CALL_LOG_INIT);} catch (ContactsException e) {e.printStackTrace();}/**最后刷新ui界面*/mContactDailDetailAdapter.notifyDataSetChanged();}然后看adapter里面怎樣對清空進(jìn)行操作的 /**清空單個(gè)號碼的通話記錄*/public void deleVoipCall(String currSipaccount, long contactId) {if (currSipaccount != null) {List<CallsListItem> singlePhoneVoipCalls = null;try {/**從數(shù)據(jù)庫中查詢單個(gè)號碼的通話記錄。而且創(chuàng)建暫時(shí)的list集合*/singlePhoneVoipCalls = SQLiteManager.getInstance().getUserVoipCallsByContactId(contactId, currSipaccount,System.currentTimeMillis() + "",Integer.MAX_VALUE);} catch (ContactsException e) {e.printStackTrace();}/**推斷非空進(jìn)行操作。直接從展現(xiàn)ui界面的data數(shù)據(jù)中移除調(diào)就可以*/if (singlePhoneVoipCalls != null) {if (userVoipCalls!=null) {userVoipCalls.removeAll(singlePhoneVoipCalls);}}} else {Toast.makeText(context, "非國鼎注冊賬號,暫無通話記錄", 0).show();}}/**點(diǎn)擊popup第一項(xiàng)調(diào)用的方法。直接clear數(shù)據(jù)集合*/public void deleAllVoipCall() {if (userVoipCalls!=null) {userVoipCalls.clear();}}--------------------------------------接下來看查詢操作--------------------------------------- if (position == 0) {/**查看某個(gè)聯(lián)系人下的所以號碼的通話記錄*/if (mContactDailDetailAdapter != null) {/**從adapter里面進(jìn)行操作*/mContactDailDetailAdapter.queryAllVoipCall(contactId);mContactDailDetailAdapter.notifyDataSetChanged();} else {Toast.makeText(ContactDailDetailActivity.this,"通話記錄列表為空", 0).show();}} else {// position大于0時(shí)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 {/**假設(shè)不是正常號碼,就直接清空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;}/**查詢某聯(lián)系人全部號碼的通話記錄*/public void queryAllVoipCall(long contactId) {try {/**從數(shù)據(jù)庫中獲取該聯(lián)系人全部號碼的全部通話記錄,并創(chuàng)建暫時(shí)的通話記錄集合*/List<CallsListItem> temp=SQLiteManager.getInstance().getUserVoipCallsByContactId(contactId,null, System.currentTimeMillis() + "",Integer.MAX_VALUE);//推斷非空并清空展示ui界面的data數(shù)據(jù)集合if (userVoipCalls!=null) {userVoipCalls.clear();}//推斷非空。而且將暫時(shí)的記錄加入到data數(shù)據(jù)集合if(temp != null){userVoipCalls.addAll(temp);}} catch (ContactsException e) {e.printStackTrace();}}// 查看號碼的通話記錄--同查詢?nèi)刻柎a的通話記錄方法一樣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();}}}
轉(zhuǎn)載于:https://www.cnblogs.com/brucemengbm/p/6791760.html
總結(jié)
以上是生活随笔為你收集整理的关于Adapter对数据库的查询、删除操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单链表的前K个的逆序输出
- 下一篇: QWSLock::up(): Inval