我有一个查询,它只会返回一项。我可以得到这样的结果
cursorOne.moveToFirst();
do
{
getID = cursorOne.getString(cursorOne.getColumnIndexOrThrow("_id"));
}while (cursorOne.moveToNext());
我想知道是否有最快的方法来获取数据,或者这是唯一的方法。
查询时使用投影,因此您只返回您需要的列
String[] projection = new String[] { "_id" }; //specify columns you want to return
Cursor cursorOne = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder);
如果只返回一行,则在获取结果时不需要 do/while。
try {
if (cursorOne.moveToFirst()) {
getID = cursorOne.getString(0); //no need to look up column index since you already know it due to the projection used
}
} finally {
cursorOne.close();
}
如果您只需要单行中的单个列值,请考虑使用 anSQLiteStatement
而不是游标。SQLiteStatement 支持simpleQueryForLong()
并且simpleQueryForString()
每个都返回一个值。