Android中Cursor類的概念和用法

2021-07-10 22:18:02 字數 1964 閱讀 8847

使用過 sqlite資料庫的童鞋對 cursor 應該不陌生,加深自己和大家對android 中使用 cursor的理解。

關於 cursor

在你理解和使用 android cursor 的時候你必須先知道關於 cursor 的幾件事情:

cursor 是每行的集合。使用 movetofirst()定位第一行。你必須知道每一列的名稱。你必須知道每一列的資料型別。cursor是乙個隨機的資料來源。所有的資料都是通過下標取得。

關於 cursor 的重要方法:

·close()——關閉游標,釋放資源

·copystringtobuffer(int columnindex, chararraybufferbuffer)——在緩衝區中檢索請求的列的文字,將將其儲存

·getcolumncount()——返回所有列的總數

·getcolumnindex(string columnname)——返回指定列的名稱,如果不存在返回-1

·getcolumnindexorthrow(stringcolumnname)——從零開始返回指定列名稱,如果不存在將丟擲illegalargumentexception 異常。

·getcolumnname(int columnindex)——從給定的索引返回列名

·getcolumnnames()——返回乙個字串陣列的列名

·getcount()——返回cursor 中的行數

·movetofirst()——移動游標到第一行

·movetolast()——移動游標到最後一行

·movetonext()——移動游標到下一行

·movetoposition(int position)——移動游標到乙個絕對的位置

·movetoprevious()——移動游標到上一行

下面來看看一小段**: 

if (cur.movetofirst() == false)

訪問 cursor 的下標獲得其中的資料

int namecolumnindex = cur.getcolumnindex(people.name);

string name = cur.getstring(namecolumnindex);

現在讓我們看看如何迴圈 cursor 取出我們需要的資料

while(cur.movetonext())

當cur.movetonext() 為假時將跳出迴圈,即 cursor 資料迴圈完畢。

·isbeforefirst()——返回游標是否指向之前第一行的位置

·isafterlast()——返回游標是否指向第最後一行的位置

·isclosed()——如果返回 true 即表示該遊戲標己關閉

有了以上的方法,可以如此取出資料

for(cur.movetofirst();!cur.isafterlast();cur.movetonext())

tip:在android 查詢資料是通過cursor 類來實現的。當我們使用sqlitedatabase.query()方法時,就會得到cursor物件, cursor所指向的就是每一條資料。

cursor 位於 android.database.cursor類,可見出它的設計是基於資料庫服務產生的。

以上**:

另:activity.startmanagingcursor方法:

將獲得的cursor物件交與activity管理,這樣cursor物件的生命週期便能與當前的activity自動同步,省去了自己對cursor的管理。

1.這個方法使用的前提是:游標結果集裡有很多的資料記錄。

所以,在使用之前,先對cursor是否為null進行判斷,如果cursor !=null,再使用此方法

2.如果使用這個方法,最後也要用stopmanagingcursor()來把它停止掉,以免出現錯誤。

3.使用這個方法的目的是把獲取的cursor物件交給activity管理,這樣cursor的生命週期便能和activity自動同步,

省去自己手動管理。

Android中cursor類的使用

android中從資料庫中查出來的資料一般都存在cursor中即 cursor mcursor msqlitedatabase.query select form table null 說白了就是乙個資料集合,具體的說就是每行資料集合,下面是api中對cursor的解釋 關於 cursor,1,cu...

Android中cursor類的使用

android中從資料庫中查出來的資料一般都存在cursor中即 cursor mcursor msqlitedatabase.query select form table null 說白了就是乙個資料集合,具體的說就是每行資料集合,下面是api中對cursor的解釋 關於 cursor,1,cu...

Android中的 Cursor 類總結

cursor是把查詢到的結果集封裝在乙個cursor物件當中。cursor就像是結果集上的乙個游標,可以向前向後移動。取出cursor中的資料一般是用 while cursor.movetonext 很多時候,不要忘記movetofirst 一般都是從第一行開始取值 移動到需要的行的時候,根據下標來...