请注意,我试图从我的android应用程序中的SQLite数据库表中检索值,在按钮单击事件并通过ListView呈现它。我能够将记录插入到表中在同一event.Although它引发以下错误:在Android代码中查询SQLite时CursorIndexOutOfBoundsException
`05-15 11:54:16.721: W/System.err(1834): android.database.CursorIndexOutOfBoundsException: Index 1 requested, with a size of 1
05-15 11:54:16.721: W/System.err(1834): at android.database.AbstractCursor.checkPosition(AbstractCursor.java:434)
05-15 11:54:16.721: W/System.err(1834): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
05-15 11:54:16.721: W/System.err(1834): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50)
`
Follwing是我使用插入,检索和显示的ListView从表中的记录中的代码块:
save.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
event=spinner.getSelectedItem().toString();
message=ed1.getText().toString();
MainActivity.myDataBase.openDatabase("/data/data/org.mithil.appname/databases/tablename", null,MainActivity.myDataBase.OPEN_READWRITE);
MainActivity.myDataBase.execSQL("INSERT INTO " +
MainActivity.tablename +
" Values ('"+ finalnumber +"','"+ name +"','"+ message +"','"+ event +"','"+ ldate +"');");
Cursor cu = MainActivity.myDataBase.rawQuery("SELECT Name FROM " + MainActivity.tablename + " WHERE Date =" + ldate +";" , null);
cu.moveToFirst();
Log.d("first rec", cu.toString());
while(cu!=null)
{
try{
lstitem.add(cu.getString(0));
cu.moveToNext();
}
catch(Exception e)
{
e.printStackTrace();
}
}
这一切都是发生在按钮click.The插入被反映在表格中,但'选择'不是。我认为移动光标时出现了一些问题。该表格由五个字段组成,我只想要检索一个ie。 '姓名'字段,并将名称添加到ListView.Kindly纠正我在哪里我错了。感谢很多。
嗨感谢suggestion.there是对光标的hasNext()方法class.But有一个名为“isAfterLast()”方法,它指向最后row.I后的位置将尝试使用that.Will让你懂。 – mithil
在我删除它之前,在那里发表了一条评论。正在考虑python。 :P – Gjordis
谢谢你@Gjordis,你的解决方案有所帮助。非常感谢。可以与你合作。 :) – mithil