图像存储和元数据(11)

最后执行该查询。WHERE 子句中有一个“?”,它将被下一个参数中的值所替换。如果存在多个“?”,那么在传入的数组中必须有多个值。这里使用ORDER BY子句指定返回的数据将以添加的日期升序排列。

cursor=managedQuery(Media.EXTERNAL_CONTENT_URI, columns, 

Media.DATE_ADDED + " > ?",whereValues, Media.DATE_ADDED + " ASC");

当然,如果希望返回所有记录,那么可以对后面的3个参数传入null值。

Cursor cursor = managedQuery(Media.EXTERNAL_CONTENT_URI, columns, null, 

null, null);

返回的游标会告诉我们当前选择的每个列的索引。

displayColumnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.

Media.DATA);

为了从游标中选择字段,需要使用此索引。首先通过调用moveToFirst方法,确保游标是有效的并包含一些结果。如果游标不包含任何结果,那么该方法将返回false。我们使用Cursor类中的几种方法之一来选择实际的数据。选择的方法取决于数据的类型,例如getString用于字符串,getInt用于整数等。

if (cursor.moveToFirst()) {

String displayName = cursor.getString(displayColumnIndex);

}

读书导航