我试图使用下面的代码获取给定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
答案 0 :(得分:0)
您必须在String Final = c.getString(0)
致电c.moveToFirst()
或c.moveToNext()
之前,然后它应该有效。由于Cursor
隐式将定位到第一行之前的位置,因此您必须先将Cursor
移至第一行,然后才能从中获取数据。
修改强>
所以它应该是这样的:
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
一点介绍:
如果执行任何语句,则始终是Cursor类的实例 回。它是数据库游标的版本,它在很多中使用 数据库系统。
Class Cursor have following few basic methods:
有关使用游标here
的更多信息此致