Android sqlite cursor的遍歷實(shí)例詳解
查詢并獲得了cursor對(duì)象后,用while(corsor.moveToNext()){}遍歷,當(dāng)corsor.moveToNext()方法調(diào)用,如果發(fā)現(xiàn)沒(méi)有對(duì)象,會(huì)返回false
public List<MMImage> getAll() {
List<MMImage> list = new ArrayList<MMImage>();
Cursor c = null;
try {
c = database.query(TABLE, null, null, null, null, null, null);
while (c.moveToNext()) {
MMImage mmImage = getMMImageFromCursor(c);
list.add(mmImage);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (c != null) {
c.close();
}
}
return list;
}
知識(shí)點(diǎn)內(nèi)容擴(kuò)展:
寫(xiě)android的時(shí)候,涉及到sqlite的知識(shí),所以自己想搞一個(gè)Demo學(xué)習(xí)一下,看了相關(guān)的教程和幫助文檔,然后開(kāi)始動(dòng)手寫(xiě)自己的程序
//1.獲取SQLiteDatabase的對(duì)象
SQliteDataBase sqlite = SQliteDatabase.openOrCreateDatabase(new File(Environment.getExternalStorageDirectory() + "\testDB"),null);
//2.向數(shù)據(jù)庫(kù)中存入數(shù)據(jù)
sqlite.execSQL("create table student(id varchar2(10),name varchar2(20),sex varchar2(2)");
sqlite.execSQL("insert into student values(?,?,?)", new String[] {"2013111111", "Tom", "M" });
//3.從sqlite中讀取數(shù)據(jù)
Cursor cursor = sqlite.rawQuery("select * from student", null);
//輸出列名
for (int i = 0; i < cursor.getColumnCount(); i++) {
textView.append(cursor.getColumnName(i) + '\t');
}
textView.append("\n");
//開(kāi)始讀取其中的數(shù)據(jù)
if (cursor.moveToFirst()) {
do {
textView.append(cursor.getString(0)
+ '\t'
+ cursor.getString(1)
+ '\t'
+ cursor.getString(2)
+ '\n');
} while (cursor.moveToNext());
}
看起了很簡(jiǎn)單,但是我當(dāng)時(shí)在使用cursor的時(shí)候忘了定位cursor,因?yàn)樵诓樵冎蠓祷氐氖且粋€(gè)結(jié)果集,也就是一張二維表,如果我們直接調(diào)用getString(int ColumnIndex)的話,就會(huì)報(bào)錯(cuò),因?yàn)楣鈽?biāo)不能夠確定你要返回哪一行的數(shù)據(jù),從而我們?cè)谑褂肅ursor的時(shí)候,注意定位光標(biāo)。
以上就是Android sqlite cursor的遍歷實(shí)例詳解的詳細(xì)內(nèi)容,更多關(guān)于Android sqlite cursor的遍歷的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- android中SQLite使用及特點(diǎn)
- 基于SQLite的Android登錄APP
- Android SQLite數(shù)據(jù)庫(kù)連接實(shí)現(xiàn)登錄功能
- Android Studio連接SQLite數(shù)據(jù)庫(kù)的登錄注冊(cè)實(shí)現(xiàn)
- Android如何通過(guò)命令行操作Sqlite3數(shù)據(jù)庫(kù)的方法
- android studio3.0以上如何通過(guò)navicat訪問(wèn)SQLite數(shù)據(jù)庫(kù)文件
- Android 解決sqlite無(wú)法創(chuàng)建新表的問(wèn)題
- Android SQLite基本用法詳解
相關(guān)文章
詳解Android .9.png “點(diǎn)九”圖片的使用
這篇文章主要為大家詳細(xì)介紹了Android .9.png “點(diǎn)九”圖片的使用方法,感興趣的小伙伴們可以參考一下2016-09-09
android okhttp的基礎(chǔ)使用【入門(mén)推薦】
本文主要總結(jié)了Android著名網(wǎng)絡(luò)框架-okhttp的基礎(chǔ)使用。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01
Android中使用Vectors(2)繪制優(yōu)美的路徑動(dòng)畫(huà)
這篇文章主要介紹了Android中使用Vectors(2)繪制優(yōu)美的路徑動(dòng)畫(huà)的相關(guān)資料,需要的朋友可以參考下2016-03-03
FloatingActionButton增強(qiáng)版一個(gè)按鈕跳出多個(gè)按鈕第三方開(kāi)源之FloatingActionButton
這篇文章主要介紹了FloatingActionButton增強(qiáng)版一個(gè)按鈕跳出多個(gè)按鈕第三方開(kāi)源之FloatingActionButton 的相關(guān)資料,需要的朋友可以參考下2015-12-12
淺析Android中g(shù)etWidth()和getMeasuredWidth()的區(qū)別
這篇文章主要介紹了淺析Android中g(shù)etWidth()和getMeasuredWidth()的區(qū)別 ,getMeasuredWidth()獲取的是view原始的大小,getWidth()獲取的是這個(gè)view最終顯示的大小,具體區(qū)別介紹大家參考下本文2018-04-04
Android Activity切換(跳轉(zhuǎn))時(shí)出現(xiàn)黑屏的解決方法 分享
Android Activity切換(跳轉(zhuǎn))時(shí)出現(xiàn)黑屏的解決方法 分享,需要的朋友可以參考一下2013-06-06
android為L(zhǎng)istView每個(gè)Item上面的按鈕添加事件
本篇文章主要介紹了android為L(zhǎng)istView每個(gè)Item上面的按鈕添加事件,有興趣的同學(xué)可以了解一下。2016-11-11
Android實(shí)現(xiàn)倒計(jì)時(shí)結(jié)束后跳轉(zhuǎn)頁(yè)面功能
最近在工作中遇到一個(gè)需求,需要在倒計(jì)時(shí)一段時(shí)間后進(jìn)行跳轉(zhuǎn)頁(yè)面,通過(guò)查找相關(guān)資料發(fā)現(xiàn)其中涉及的知識(shí)還不少,所以分享出來(lái),下面這篇文章主要給大家介紹了關(guān)于Android實(shí)現(xiàn)倒計(jì)時(shí)結(jié)束后跳轉(zhuǎn)頁(yè)面功能的相關(guān)資料,需要的朋友可以參考下。2017-11-11
安卓(Android) 監(jiān)聽(tīng)按鍵長(zhǎng)按事件
本文主要介紹Android 中監(jiān)聽(tīng)按鍵的長(zhǎng)按事件,對(duì)按鍵機(jī)制進(jìn)行詳解,并附有代碼實(shí)例,具有參考價(jià)值,希望能幫到有需要的小伙伴2016-07-07
Android四大組件:Activity/Service/Broadcast/ContentProvider作用示例
Android是一種基于Linux,自由及開(kāi)放源代碼的操作系統(tǒng),Android分為四個(gè)層,從高層到底層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層,Android有四大基本組件:Activity、Service服務(wù)、BroadcastReceiver廣播接收器、Content Provider內(nèi)容提供者2023-11-11

