Обратите внимание, что я пытаюсь извлечь значения из таблицы в SQLite DB в моем приложении Android, на событие нажатия кнопки и представить его через ListView. Я могу вставлять записи в таблицу на том же event.Although он выдает следующее сообщение об ошибке:CursorIndexOutOfBoundsException при запросе SQLite в коде Android
`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();
}
}
Все это происходит нажатием кнопки. Вставки отражаются в таблице, но «Выбрать» - нет. Я считаю, что что-то не так с перемещением курсора. Таблица состоит из пяти полей, которые я хочу получить только один. 'Name' и добавьте имя в ListView.Kindly правильно меня, где я иду не так. Спасибо много.
Привет спасибо за suggestion.there нет метода hasNext() для курсора class.But есть метод, называемый "isAfterLast(), который указывает на положение после последнего row.I будет попробовать использовать that.Will пусть вы знаете. – mithil
Если бы у меня был этот комментарий, я бы его снял. думал о питоне. : P – Gjordis
Спасибо @ Gjordis, ваше решение помогло. Большое спасибо. Может быть, сила будет с вами. :) – mithil