今天学习了sqlite,现在总解一下cursor的一些注意点。cursor的默认返回位置是-1,所以在使用时应该先让cursor指向位置0.即movetofirst,否则会产生错误。故在使用cursor之前应该加上一句
if (cursor != null && cursor.moveToFirst())
<pre name="code" class="java">
dbReader = db.getReadableDatabase();
Cursor cursor = dbReader.query(DB.TABLE_NAME, null, null, null,
null, null, null);
Log.i("test", cursor.getCount() + "");
int position = cursor.getPosition();
Log.i(TAG, "cursor默认位置" + position);
cursor.moveToFirst();
int position2 = cursor.getPosition();
Log.i(TAG, "cursor moveToFirst位置 " + position2);
if (cursor != null && cursor.moveToFirst()) {
while (!cursor.isAfterLast()) {
String name = cursor
.getString(cursor.getColumnIndex(DB.NAME));
int age = cursor.getInt(cursor.getColumnIndex(DB.AGE));
Log.i(TAG, name + "and" + age + "sui");
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add(name);
cursor.moveToNext();
}
cursor.close();
}
dbReader.close();