十年專注于品牌網站建設 十余年專注于網站建設_小程序開發_APP開發,低調、敢創新、有情懷!
      南昌百恒網絡微信公眾號 掃一掃關注
      小程序
      tel-icon全國服務熱線:400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡微信小程序

      百恒網絡

      南昌百恒網絡

      Android開發之Cursor的使用方法介紹

      百恒網絡 2017-08-11 9993

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

      從Cursor獲取數據的代碼大致如下所示:

      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記錄,以上代碼都要重復寫一次。(這還不包括按照這些字段值創建Crime實例的代碼。)

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

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

      參照以下代碼,在數據庫包中新建CrimeCursorWrapper類。

      創建CrimeCursorWrapper類(CrimeCursorWrapper.java)

      public class CrimeCursorWrapper extends CursorWrapper {

      public CrimeCursorWrapper(Cursor cursor) {

      super(cursor);

      }

      }

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

      參照以下代碼,新增獲取相關字段值的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中新增一個有此用途的構造方法,如下代碼所示。

      新增Crime構造方法(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會讓你確定是選擇java.util.Date還是java.sql.Date。不要搞錯,即便我們現在是在編寫數據庫相關代碼,也應該選java.util.Date。)

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


      400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡小程序

      歡迎您的光顧,我們將竭誠為您服務×

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務 售后服務
       
      售后服務 售后服務
       
      備案專線 備案專線
       
      ×
      91精品国产麻豆国产自产在线| 在线观看精品一区| 日韩黄色免费观看| 精品日韩一区二区| 2021国产精品午夜久久| 中文字幕亚洲综合精品一区| 国产精品人人爽人人做我的可爱 | 国内精品久久久久影院一蜜桃| 日韩大片免费观看视频播放| 无码人妻精品一区二区三区9厂| 午夜精品久久久久久毛片| 亚洲精品乱码久久久久66| 精品国精品国产自在久国产应用男| 国产精品成人自拍| 精品国产粉嫩内射白浆内射双马尾| 99热这里有免费国产精品| 国产精品禁18久久久夂久| 99精品视频在线观看| 精品无码一级毛片免费视频观看| 日韩亚洲国产二区| 日韩精品一区二区三区毛片| 国产伦精品一区二区三区不卡| 久久国产精品无码一区二区三区 | 国产精品亲子乱子伦xxxx裸| 日批日出水久久亚洲精品tv| 丰满日韩放荡少妇无码视频| 国产在视频线在精品| 亚洲午夜精品一区二区麻豆| 2022国产精品自产拍在线观看| 久久综合国产乱子伦精品免费 | 精品人无码一区二区三区| 一本一道久久精品综合| 无码国内精品久久人妻蜜桃| 99久久国产精品免费一区二区| 青草青草久热精品视频在线观看| 国产成人精品高清免费| 国产精品久久久久久久久齐齐| 久热爱精品视频在线| 久热国产精品视频一区二区三区| 精品一二三区久久aaa片 | 一区二区精品在线|