Android MatrixCursor

 在開(kāi)發(fā)APP的時(shí)候,如果需要一個(gè)cursor而沒(méi)有一個(gè)現(xiàn)成的cursor,那么可以實(shí)現(xiàn)一個(gè)虛擬的表,就是使用MatrixCursor,比如說(shuō)在使用ContentProvider的時(shí)候,數(shù)據(jù)源可以使用sqlite也可以使用SharePreference,但是ContentProvider的重載方法必須要返回一個(gè)cursor,那么這個(gè)時(shí)候就可以使用MatrixCursor。
實(shí)現(xiàn)步驟僅需3步,下面通過(guò)字符數(shù)組來(lái)說(shuō)明:
步驟1.首先創(chuàng)建一個(gè)字符數(shù)組,且字符數(shù)組的值對(duì)應(yīng)著表的字段,如下:
  String[] COLUMN_NAME = { "_id", "name", "price" };

步驟2.利用MatrixCursor的構(gòu)造方法,構(gòu)造一個(gè)MatrixCursor,傳入的參數(shù)即是步驟1中創(chuàng)建的字段數(shù)組,如下:
MatrixCursormatrixCursor=newMatrixCursor(COLUMN_NAME);
也可以指定初始大小,如:
matrixCursor=newMatrixCursor( COLUMN_NAME, 10);

步驟3. 通過(guò)matrixCursor 的addRow方法添加一行值,相當(dāng)于向數(shù)據(jù)庫(kù)中插入一條記錄,如下:
matrixCursor.addRow(new Object[] { R.drawable.ic_launcher, "zhangsan",39 });

注:步驟3也可以通過(guò)構(gòu)造一個(gè)MatrixCursor.RowBuilder來(lái)實(shí)現(xiàn),也是相當(dāng)于向數(shù)據(jù)庫(kù)中插入一條記錄,如下:
MatrixCursor.RowBuilder builder1 = matrixCursor.newRow();
builder1.add(R.drawable.ic_launcher);
builder1.add("zhangsan");
builder1.add(39);

      //builder1.add(399999);

通過(guò)上面三步即可完成MatrixCursor 的構(gòu)造。從MatrixCursor 中取出數(shù)據(jù)的過(guò)程與Cursor相同,不再贅述!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,155評(píng)論 25 708
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,760評(píng)論 18 399
  • 誰(shuí)的歌聲入了我的夢(mèng) 卷去一片七彩云? 不要讓我含淚仰望 黑暗精靈會(huì)來(lái)尋找悲傷的食糧 墨色羽翼是太陽(yáng)的灼傷 撕裂真理...
    笨熊是一家閱讀 157評(píng)論 0 3
  • 科恩從6歲開(kāi)始就與眾不同,他智力正常,與人為善,積極上進(jìn),但沒(méi)有人喜歡他,原因在于他總會(huì)發(fā)出怪聲。同學(xué)們欺負(fù)他,老...
    雨巷葳蘭閱讀 2,556評(píng)論 0 5