Android 读取给定行中特定字段时出现的问题
我正在尝试使用下面的代码获取给定ID的相应标题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,
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()-释放游标的资源
- 接下来