我想根据另一列显示列中的数据,所以我在HelperDB中使用此方法来获取Cursor:
public Cursor getData(String EMAIL) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery( "SELECT * FROM table_users WHERE email LIKE '" + EMAIL +"';" , null );
return res;
}
要显示(hlp是HlperDB):
Cursor c = hlp.getData(Email);
tv3 = (TextView) findViewById(R.id.tv3);
tv3.setText(c.getString(c.getColumnIndex(HelperDB.NOTES)));
但是它给出了这个错误:android.database.CursorIndexOutOfBoundsException:索引-1请求,大小为1
你能帮我吗?
答案 0 :(得分:1)
试试这个:
Cursor c = hlp.getData(Email);
if(c != null)
c.moveToFirst();
tv3 = (TextView) findViewById(R.id.tv3);
tv3.setText(c.getString(c.getColumnIndex(HelperDB.NOTES)));
答案 1 :(得分:0)
我的猜测是你的Cursor没有数据(是NULL)。 Cursor.getColumneIndex(link)的API文档表明如果列不存在,它将返回-1。然后当你尝试执行getString()时,你传递的是-1,那就是你的错误。