Android 數據庫中的數據給到ListView


  

  前言:因為之前學的都是用一個自己定義的類,完成將某一個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

       

 

 

 

 

  

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM