千家信息网

Android开发之Cursor怎么使用

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要讲解了"Android开发之Cursor怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android开发之Cursor怎么使用"吧
千家信息网最后更新 2025年02月03日Android开发之Cursor怎么使用

这篇文章主要讲解了"Android开发之Cursor怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android开发之Cursor怎么使用"吧!

从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。)

感谢各位的阅读,以上就是"Android开发之Cursor怎么使用"的内容了,经过本文的学习后,相信大家对Android开发之Cursor怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

代码 方法 开发 数据 学习 封装 内容 子类 字段 就是 情况 数据库 中新 复用 顾名思义 原则 实例 对象 思路 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 英语网络安全词汇对照表 数据库技术在无线传感 苏州美居客网络技术有限公司 软件开发外包地址 网络安全工作的工作亮点 服务器bmc监控管理功能 惠普380服务器管理 贵州服务器机柜生产厂家 电销网络技术部部门职责 怎样删除微信运动数据库 青城电商系统数据库 商品添加到数据库代码怎么写 服务器安全保障方案 无法验证服务器身份 苹果7 软件开发风险分析背景 网络安全部署会讲话 万家乐one连不上服务器原因 网络安全信息化系统集成的 育系统网络安全专题网络培训心得 党政机关网络安全体系建设 学生如何远离网络安全的威胁 学网络技术的中职的工资是多少 青藤云主服务器安全产品 深圳市前方网络技术 arms网络安全 如何用jdbc连接数据库 学计算机是学什么软件开发 网络技术应该怎么学 中国联通网络安全清风队 数据库ng是什么意思
0