使用過 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 一般都是從第一行開始取值 移動到需要的行的時候,根據下標來...