Thanks. But this is strange. When I add this condition if(cursor.getCount() > 0) } ...
My ListView is empty. In LogCat everything looks fine. On May 26, 9:59 am, Senthil ACS <[email protected]> wrote: > Hi, > > After you get a cursor object from a query, check the count before > doing "moveToFirst()". > > if(cursor.getCount() > 0) > { > cursor.moveToFirst(); > ... processing ... > > } > > On May 26, 3:12 am, adek <[email protected]> wrote: > > > > > > > > > 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 [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

