重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要讲解了“Android开发之Cursor怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android开发之Cursor怎么使用”吧!
10余年的深圳网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整深圳建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“深圳网站设计”,“深圳网站推广”以来,每个客户项目都认真落实执行。
从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怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!