前言:因為之前學的都是用一個自己定義的類,完成將某一個bean中的數據直接獲取,而實際中通常是通過數據庫來得到的,總之,最終就是要得到數據。提一下最重要的東西,我把它叫做代理,如同一個校園代理,沒有他很多事情都做不了,這個東西就是游標適配器--CursorAdapter
1.首先講一個故事。
onCreate()夢開始了,ListView最初是沒有數據的,內心十分空盪。
ListView: 嘿,適配器,可以給我前5個數據嗎?我要充實一下自我。
CursorAdapter: 兄弟,沒問題,我現在就去取。
CursorAdapter: 嘿,游標,我需要前5個數據,幫我取一下。
游標: 好的,才5個數據,我會馬上傳給你。
真正的用戶不會滿足5個數據,用戶會往下滑,希望看到更多的數據。
-----手機屏幕監聽用戶往下滑動-----ListView率先知道,他去問適配器-----適配器去請求游標-----游標去查數據庫
2.SimpleCursorAdapter將數據映射到視圖
SimpleCursorAdapter它的老板是CursorAdapter ,就是用來做苦力的。實際的作用是:實現列表視圖顯示游標數據。
SimpleCursorAdapter首先問一下游標有哪些列,然后它仔仔細細地把每一列都找到對應的TextView和ImageView,生怕出亂子。
(1)首先肯定要存在這么一個游標,而且要有唯一的一個_id列,就是為了保證數據不會很紊亂,也方便查找數據。
cursor=db.query("Person",new String[]{"_id","name"}, null,null,null,null,null) //意思就是我要Person表中_id列,name列的所有數據,后面那些null為條件,這里就不管什么條件,也就是所有列都要給霸道的游標
(2)創建游標適配器-----CursorAdapter派了一個員工來-----SimpleCursorAdapter來處理一些事情。 聯系點在第四個參數和第五個參數,String[] fromColumns決定了數據庫表中的那些列,int[] toViews對應布局中的唯一id ,這樣就聯系起來了!
(3)關閉游標和數據庫c
當你打擾他人時,離開的時候,有素質的人都會幫忙關一下門。否則陌生人隨便進來就慘了,東西不見造成內存泄露,把危險品帶進來造成線程阻塞等等意想不到的事情,所以出以禮貌的原因,我們最后一步會簡簡單單地close
super.onDestroy();-----主人送你到門口
cursor.close();-----在數據庫里面游盪的線人先出來,不然就永遠地長眠於大數據中了
db.close();-----游標出來后,可以放心的關上門了
3.最后整理一下思路,不然就被繞暈了
以一個故事完美結束。
onCreate()...夢開始了。因為這個活動有點特殊,由一個ListActvity老板舉行,所以它可以直接通過一個getListView()函數得到一個列表。
SQLiteOpenHelper隨之率先引領潮流,獲得一個數據庫的大寶藏。
寶藏藏在一座山中,數據庫委員會決定派一個游標cursor來查找這個寶藏的下落。
這個小游標找到了寶藏,但是太重了,他一個人完全無法搬運,所以它找來了一個適配器SimpleCursorAdapter來幫助他將寶藏搬出去。
這個時候,ListActivity老板發現了他們骯臟的交易,然后他也拍了一批人,直接將寶藏轉移到自己的適配器上面了。
這些寶藏分了好幾批,運過來了。主活動對每一批寶藏都進行了嚴格的監視,所以就產生了一個每一列的監聽器。
所以現在有人要借用寶藏,更新寶藏,使用寶藏,數據庫委員會都進行了嚴格的記錄。以便於其他活動正確執行。
4.滴答滴答,夢結束了。晚安了。-----2017-7-8 0:31
