我的迭代光标的代码
if (cursor.moveToFirst()) {
while (cursor.moveToNext()) {
String x = cursor.getString(cursor.getColumnIndex("event_name"));
System.out.println("Cursor ::::::" + x);
listViewModel.setEventDate(cursor.getString(cursor.getColumnIndex("event_date")));
modelList.add(listViewModel);
}
}
SYSO 打印:
Cursor ::::::android.support.v7.widget.AppCompatEditText{2e1dacdf VFED..CL ........ 0,73-1344,209 #7f0c006f app:id/eventName}
光标从数据库获取数据:
public Cursor getEvents(Domain dbOperations){
database = dbOperations.getReadableDatabase();
String[] columns = {TableInfo.TableDetails.EVENT_NAME, TableInfo.TableDetails.EVENT_DATE};
Cursor cursor = database.rawQuery("SELECT event_name, event_date FROM events", null);
return cursor;
}
有人可以帮我了解数据库中到底有什么吗? 谢谢
最佳答案
当您插入数据库时:
contentValues.put("event_name", eventNameEditText.getText().toString());
您还应该更改循环:
if (cursor.moveToFirst()) {
do {
String x = cursor.getString(cursor.getColumnIndex("event_name"));
System.out.println("Cursor ::::::" + x);
listViewModel.setEventDate(cursor.getString(cursor.getColumnIndex("event_date")));
modelList.add(listViewModel);
}while (cursor.moveToNext());
这是因为当您调用 moveToFirst()
方法时,游标已准备好从 row#0 返回数据。当您立即调用 moveToNext()
时,它将转到 row#1 并跳过第一行。
关于java - Android中从光标获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36243761/