Android中的【Cursor】類總結


最近做一個音樂播放器,不斷的用到cursor以及adapter去填充listview,以前只是用的多,知道咋用,沒有仔細的深入去學習,今天特意學習了一下,寫一點總結,方便自己和大家理解。當然是參考了許多大牛的博客的,這里貼上地址:

http://www.cnblogs.com/TerryBlog/archive/2010/07/05/1771459.html

http://hi.baidu.com/quding0308/blog/item/4623237568d6b100b151b9f4.html.

Cursor是把查詢到的結果集封裝在一個Cursor對象當中。

cursor就像是結果集上的一個游標,可以向前向后移動。

取出Cursor中的數據一般是用:

while(cursor.moveToNext())

{  

// 取值

}

很多時候,不要忘記 moveToFirst(),一般都是從第一行開始取值;

移動到需要的行的時候,根據下標來取出當前的行中的對應字段的值,

在使用cursor的時候一定要注意一下問題:

  • Cursor 是每行的集合。
  • 使用 moveToFirst() 定位第一行。
  • 你必須知道每一列的名稱。
  • 你必須知道每一列的數據類型。
  • Cursor 是一個隨機的數據源。
  • 所有的數據都是通過下標取得。

很多時候可以使用startManagingCursor()這個方法來管理cursor,就不用自己再去關閉(但是覺得這么輕松就能管理Cursor可能會出現一些想不到的問題,但是目前來說我基本都是用這個方法來管理cursor,測試什么的都沒有出現問題)。
Cursor中的方法:



在Android 查詢數據是通過Cursor 類來實現的。當我們使用 SQLiteDatabase.query()方法時,就會得到Cursor對象, Cursor所指向的就是每一條數據。結合ADO.net 的知識可能好理解一點。

Cursor 位於 android.database.Cursor類,可見出它的設計是基於數據庫服務產生的。

另外,還有幾個己知的子類,分別為:

  • AbstractCursor
  • AbstractWindowedCursor
  •  CrossProcessCursor
  •  CursorWrapper
  •  MatrixCursor
  •  MergeCursor
  •  MockCursor
  • SQLiteCursor




注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com