這次要講解的是另外一個常用的安卓原生擴充卡—simplecursoradapter:
關于simplecursoradapter,sdk的解釋是這樣的:
an easyadapter to map columns from a cursor to textviews or imageviews defined in anxml file. you can specify which columns you want, which views you want todisplay the columns, and the
xml file that defines the appearance of theseviews。
簡單的說就是友善把從遊标得到的資料進行清單顯示,并可以把指定的列映射到對應的textview中。
下面要寫的程式是從電話簿中把聯系人顯示到類表中獲得一個指向資料庫的cursor并且定義一個布局檔案(當然也可以使用系統自帶的)将資料展示出來!
項目開始!
(1)還是先在activity_main.xml裡添加一個button,一會跳轉的時候使用。
(2)然後建立一個類simplecursoradapterdemo繼承自activity作為我們第二個例子的activity,并且
@override 我們的oncreate方法。
(3)建立一個xml檔案simplecursoradapterdemo.xml作為我們的布局檔案,其中也是包含一個文本域和一個listview:
代碼如下
simplecursoradapterdemo.xml:
(4)回到simplecursoradapterdemo,定義一個listview暫且叫做lv,并使用剛才的id,setcontentview()為剛才的xml布局,然後為lv設定一個擴充卡:
<code>simplecursoradapter(context context,</code><code>int</code>
<code>layout,cursor c, string[] from,</code><code>int[] to)</code>
先解釋一下參數:
第一個參數this,第二個layout的參數是listview中單行的布局, c是你資料的遊标。剛開始其實from和to比較讓人不熟悉,from是你查詢出的資料,to是單行布局中的單獨控件,一對一的關系,用起來非常友善。
再說一下需要用到的cursor:
我們用:
cursor cursor = getcontentresolver().query(people.content_uri, null, null, null,null);
先獲得一個指向系統通訊錄資料庫的cursor對象獲得資料來源。
再使用:
startmanagingcursor(cursor);
将獲得的cursor對象交由activity管理,這樣cursor的生命周期和activity便能夠自動同步,省去自己手動管理cursor。
simplecursoradapter 構造函數前面3個參數和arrayadapter是一樣的,最後兩個參數:一個包含資料庫的列的string型數組,一個包含布局檔案中對應元件id的int型數組。其作用是自動的将string型數組所表示的每一列資料映射到布局檔案對應id的元件上。上面的代碼,将name列的資料一次映射到布局檔案的id為text1的元件上。
注意:需要在androidmanifest.xml中如權限:
<uses-permissionandroid:name="android.permission.read_contacts"></uses-permission>
具體代碼如下:
最終的效果圖:

這樣第二種常用的安卓原生擴充卡也就告一段落了,還是本着分成多篇以防止篇幅過長的原則,這一篇就到這裡了,下一講我們繼續學習simpleadapter,一種可擴充性很強的擴充卡,大家不要錯過哦!
源碼會在最後一篇寫完的時候傳上來,我也是邊寫部落格,邊寫代碼,我覺得這樣思路比較清晰。
我也是學生,水準有限,還望大家多多指教~