Android 中關於Cursor類的介紹

2021-08-25 16:46:23 字數 2000 閱讀 3389

使用過 sqlite 資料庫的童鞋對 cursor 應該不陌生,如果你是搞.net 開發你大可以把cursor理解成 ado.net 中的資料集合。今天特地將它單獨拿出來談,加深自己和大家對android 中使用 cursor 的理解。

關於 cursor

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

cursor 是每行的集合。

使用 movetofirst() 定位第一行。

你必須知道每一列的名稱。

你必須知道每一列的資料型別。

cursor 是乙個隨機的資料來源。

所有的資料都是通過下標取得。

關於 cursor 的重要方法:

close()

關閉游標,釋放資源

copystringtobuffer(int columnindex, chararraybuffer buffer)

在緩衝區中檢索請求的列的文字,將將其儲存

getcolumncount()

返回所有列的總數

getcolumnindex(string columnname)

返回指定列的名稱,如果不存在返回-1

getcolumnindexorthrow(string columnname)

從零開始返回指定列名稱,如果不存在將丟擲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所指向的就是每一條資料。結合ado.net 的知識可能好理解一點。

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

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

abstractcursor

abstractwindowedcursor

crossprocesscursor

matrixcursor

mergecursor

mockcursor

sqlitecursor

具體詳細的使用方法和解釋可以去參照api,這裡就不過多講述。

CSS中控制滑鼠指標形狀的屬性cursor

最常用的滑鼠指標變成小手形 cursor pointer 曾經ie5cursor hand也可以有小手形,現經測試高版本ie edge firefox chrome qq 360 等瀏覽器均失敗 強烈建議使用pointer 案例 css滑鼠手型效果 pointer hand css滑鼠由系統自動給出...

關於android中的ANR

在onupdate中獲取到fields的更新值 final string fields new string 5 fields 0 notifyvalue update,x1 fields 1 notifyvalue update,x2 fields 2 notifyvalue update,x3 ...

關於Android中的碎片

1.碎片和活動差不多,也包含布局。有自己的生命週期 2.在活動中使用fragment標籤可以將碎片新增到布局中 5個步驟 1.建立待新增的碎片例項 2.獲取fragmentmanager,在活動中可以直接通過呼叫getsupportfragmentmanager 方法得到 3.開啟乙個事務,通過呼叫...