2012年3月11日 星期日

Android SimpleCursorAdapter

最近想作個小工具放到market分享,中途遇到了listview的item要與DB的CRUD結合,
所以對於要如何在listview中取得SQLite中cursor對應的id感到困擾,所幸在survey了
一下相關的問題後,找到了android提供的SimpleCursorAdapter,該adapter的好處在於可以將db查詢回傳的Cursor直接使用,如此可方便開發者在Listview的item click listener中進行物件的操作
SimpleCursorAdapter的建構子如下:
SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to)
更多資訊可參考http://developer.android.com/reference/android/widget/SimpleCursorAdapter.html

foodCursor = getFoodCursor();//取得sqlite Cursor
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
this,
 R.layout.mylistview2,//指定的layout
foodCursor,////取得sqlite Cursor
 new String[] { "name", "price", "category" },//所要顯示的db欄位,這裡要顯示的為name,price,category
new int[] { R.id.textView1, R.id.textView2, R.id.textView3 }//對應的layout id
);
而另外一個使用SimpleCursorAdapter的好處在於一般的apadter在更新資料後,往往要搭配dapter的notifyDataSetChanged()通知UI畫面重新更新,而直接使用SimpleCursorAdapter僅需要使用Cursor.requery()即可更新UI,非常的方便

http://developer.android.com/reference/android/widget/CursorAdapter.html

沒有留言: