欧美亚洲大片-国产免费成人在线视频-国产成人8x人在线视频软件-日韩亚洲欧美中文字幕-97伦伦午夜电影理伦片-亚洲综合精品视频-曰本女人牲交高潮视频-久久久精品欧美-天天干天天操天天碰-精品国产乱码久久久久久1区2区-黄色一级免费片-在线免费欧美-国产成人精品在线视频-精人妻一区二区三区-香蕉视频2020-综合久久99-欧美日韩亚洲国产综合

十年專注于品牌網(wǎng)站建設(shè) 十余年專注于網(wǎng)站建設(shè)_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡(luò)微信公眾號(hào) 掃一掃關(guān)注
小程序
tel-icon全國(guó)服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開百恒網(wǎng)絡(luò)微信小程序

百恒網(wǎng)絡(luò)

南昌百恒網(wǎng)絡(luò)

Android開發(fā)之Cursor的使用方法介紹

百恒網(wǎng)絡(luò) 2017-08-11 10690

Cursor是個(gè)神奇的表數(shù)據(jù)處理工具,其任務(wù)就是封裝數(shù)據(jù)表中的原始字段值,下面南昌APP制作開發(fā)公司小編就帶大家一起了解一下它的具體操作方法。

從Cursor獲取數(shù)據(jù)的代碼大致如下所示:

String uuidString = cursor.getString(

cursor.getColumnIndex(CrimeTable.Cols.UUID));

String title = cursor.getString(

cursor.getColumnIndex(CrimeTable.Cols.TITLE));

long date = cursor.getLong(

cursor.getColumnIndex(CrimeTable.Cols.DATE));

int isSolved = cursor.getInt(

cursor.getColumnIndex(CrimeTable.Cols.SOLVED));

每從Cursor中取出一條crime記錄,以上代碼都要重復(fù)寫一次。(這還不包括按照這些字段值創(chuàng)建Crime實(shí)例的代碼。)

顯然,遇到這種情況,我們應(yīng)考慮到前面說過的代碼復(fù)用原則。與其機(jī)械地編寫重復(fù)代碼,

不如創(chuàng)建可復(fù)用的專用Cursor子類。使用CursorWrapper可快速方便地創(chuàng)建Cursor子類。顧名思義,CursorWrapper能夠封裝一個(gè)個(gè)Cursor的對(duì)象,并允許在其上添加新的有用方法。

參照以下代碼,在數(shù)據(jù)庫(kù)包中新建CrimeCursorWrapper類。

創(chuàng)建CrimeCursorWrapper類(CrimeCursorWrapper.java)

public class CrimeCursorWrapper extends CursorWrapper {

public CrimeCursorWrapper(Cursor cursor) {

super(cursor);

}

}

可以看到,以上代碼創(chuàng)建了一個(gè)Cursor封裝類。該類繼承了Cursor類的全部方法。注意,這樣封裝的目的就是為了定制新方法,以方便操作內(nèi)部Cursor。

參照以下代碼,新增獲取相關(guān)字段值的getCrime()方法。

新增getCrime()方法(CrimeCursorWrapper.java)

public class CrimeCursorWrapper extends CursorWrapper {

public CrimeCursorWrapper(Cursor cursor) {

super(cursor);

}

public Crime getCrime() {

String uuidString = getString(getColumnIndex(CrimeTable.Cols.UUID));

String title = getString(getColumnIndex(CrimeTable.Cols.TITLE));

long date = getLong(getColumnIndex(CrimeTable.Cols.DATE));

int isSolved = getInt(getColumnIndex(CrimeTable.Cols.SOLVED));

return null;

}

}

我們需要返回具有UUID的Crime。在Crime.java中新增一個(gè)有此用途的構(gòu)造方法,如下代碼所示。

新增Crime構(gòu)造方法(Crime.java)

public Crime() {

this(UUID.randomUUID());

mId = UUID.randomUUID();

mDate = new Date();

}

public Crime(UUID id) {

mId = id;

mDate = new Date();

}

最后,完成getCrime()方法,如下代碼

新增getCrime()方法(CrimeCursorWrapper.java)

public Crime getCrime() {

String uuidString = getString(getColumnIndex(CrimeTable.Cols.UUID));

String title = getString(getColumnIndex(CrimeTable.Cols.TITLE));

long date = getLong(getColumnIndex(CrimeTable.Cols.DATE));

int isSolved = getInt(getColumnIndex(CrimeTable.Cols.SOLVED));

Crime crime = new Crime(UUID.fromString(uuidString));

crime.setTitle(title);

crime.setDate(new Date(date));

crime.setSolved(isSolved != 0);

return crime;

return null;

}

(Android Studio會(huì)讓你確定是選擇java.util.Date還是java.sql.Date。不要搞錯(cuò),即便我們現(xiàn)在是在編寫數(shù)據(jù)庫(kù)相關(guān)代碼,也應(yīng)該選java.util.Date。)

最后,小編要提醒大家的是,在南昌APP開發(fā)中,經(jīng)常會(huì)遇到Cursor封裝數(shù)據(jù)表中的原始字段值的情況,所以正確掌握Cursor的用法是很有必要的,如果對(duì)于Cursor的用法大家還有哪些不太明白的地方,可隨時(shí)來電咨詢百恒網(wǎng)絡(luò),本公司專業(yè)從事APP開發(fā)、網(wǎng)站建設(shè)、微信開發(fā)等服務(wù)具有十多年的豐富經(jīng)驗(yàn),技術(shù)嫻熟,實(shí)力雄厚。因此,只要您有需要,任何疑難問題我們都可以為您解決!


400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)
掃一掃打開百恒網(wǎng)絡(luò)小程序

歡迎您的光顧,我們將竭誠(chéng)為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
×
肇东市| 文化| 东港市| 高陵县| 景泰县| 察雅县| 安吉县| 毕节市| 吉林市| 荆州市| 睢宁县| 盈江县| 亳州市| 汝城县| 南澳县| 南岸区| 若羌县| 榕江县| 八宿县| 皮山县| 黄冈市| 铁力市| 小金县| 惠州市| 襄垣县| 安新县| 清徐县| 突泉县| 黎平县| 汤原县| 福贡县| 兴义市| 乌海市| 务川| 丰县| 奈曼旗| 南华县| 宜宾市| 从化市| 甘孜县| 公安县|