Android 读取给定行中特定字段时出现的问题

Android 读取给定行中特定字段时出现的问题,android,sqlite,cursor,Android,Sqlite,Cursor,我正在尝试使用下面的代码获取给定ID的相应标题 public String get_Title(int id){ Cursor c = db.query(true, DATABASE_TABLE, new String[] { APP_TITLE, }, KEY_ROWID + "=" + id, null, null,

我正在尝试使用下面的代码获取给定ID的相应标题

public String get_Title(int id){
        Cursor c = db.query(true, DATABASE_TABLE, new String[] {
                APP_TITLE,
                },
                KEY_ROWID + "="  + id,
                null,
                null,
                null,
                null,
                null);

                String Final = c.getString(0);

                return Final;

        }

我一直在获取索引超出范围导致的异常。我不擅长使用游标,所以如果有人能帮我的话S

您必须在
String Final=c.getString(0)
之前调用
c.moveToFirst()
c.moveToNext()
,然后它应该可以工作。因为
光标
被隐式定位到第一行之前的位置,所以您必须首先将
光标
移动到第一行,然后才能从中获取数据

编辑:

if (c.getCount()) { // if there is some data
   c.moveToFirst();
   String Final = c.getString(0);
}
else {
   Toast.makeText(YourActivityName.this, "No data found", Toast.LENGTH_SHORT).show();
}

所以应该是这样的:

if (c.getCount()) { // if there is some data
   c.moveToFirst();
   String Final = c.getString(0);
}
else {
   Toast.makeText(YourActivityName.this, "No data found", Toast.LENGTH_SHORT).show();
}
所以你写到你不擅长使用
Cursor
小介绍:

若执行任何语句,游标类的实例将始终为 返回。它是数据库游标的一个版本,在许多应用程序中都使用它 数据库系统

  • getCount()-获取实际游标中的行数
  • moveToFirst()、moveToNext()等-用于在行之间移动
  • getColumnNames()-获取列的名称
  • getColumnIndex()-获取给定列的从零开始的索引 名字
  • getString()、getInt()等-获取请求列“索引”的数据
  • 重新查询()-再次执行游标
  • close()-释放游标的资源
  • 接下来
有关使用游标的更多信息,请参见

问候