Hello, As a beginner in android java world I need your help. I've got problem with famous "CursorIndexOutOfBoundsException".
I'm using SQLite db, and I have two cursors, I'm getting some rows from database. I need to get some previous values with some conditions with second cursor (c2) and put these values on ListView. Code works with one exception: "android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0". ListView looks OK if I just ignore this exception but I want to fix it. I know it is connected to with Cursor. I tried to check some conditions - it didn't help. Maybe if you could take a look at my code you find where is the cause. Code: public void LoadLogGrid() { dbHelper=new DatabaseHelper(this); try { int LogName = (int) spinLog.getSelectedItemId(); Cursor c=dbHelper.getLogByLogID(LogName); if (c != null) c.moveToFirst(); int count = c.getCount(); if (c.moveToFirst()){ ArrayList<String> mArrayList = new ArrayList<String>(); int i=0; do { int sVar1 = c.getInt(c.getColumnIndex("Var1")); Long sId = (long) c.getInt(c.getColumnIndex("_id")); Cursor c2=dbHelper.getPrevLogByLogID(LogName,sVar1); c2.moveToFirst(); if (c2!=null) { String sPrevOdo = c2.getString(c2.getColumnIndex("Odo")); mArrayList.add(sPrevOdo); c2.close(); } else { //stopManagingCursor(c2); //c2.close(); Log.d("A:", "Something"); } String [] from=new String []{"Date","Col1","Col2","Col3"}; int [] to=new int [] {R.id.logDate,R.id.logCol1,R.id.logCol2,R.id.logCol3,R.id.rowOpt2}; SimpleCursorAdapter sca=new LogCursorAdapter(this,R.layout.loggridrow,c,from,to,mArrayList); grid.setAdapter(sca); registerForContextMenu(grid); i++; } while (c.moveToNext()); c.close(); dbHelper.close(); } } catch(Exception ex) { AlertDialog.Builder b=new AlertDialog.Builder(this); b.setMessage(ex.toString()); b.show(); } } Query in second cursor: public Cursor getPrevLogByLogID(long LogID, long Var1) { SQLiteDatabase db=this.getReadableDatabase(); String[] params=new String[] {String.valueOf(LogID),String.valueOf(Var1)}; Cursor c2=db.rawQuery("SELECT LogID as _id, Col1 from Log WHERE Col2=? AND Col3<? AND Full=1 ORDER BY Odo DESC", params); if (c2 != null) { c2.moveToFirst();} return c2; } -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en