Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 17th, 2012  |  syntax: None  |  size: 6.41 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Android: Cursor Out Of Bounds Exception
  2. ok.setOnClickListener(new View.OnClickListener(){
  3.     public void onClick(View v) {
  4.  
  5.         if (dumbbells.isChecked()==true){
  6.             equip = "dumbbells";
  7.             AddToEquipTable(equip);
  8.         }
  9.         if (barbell.isChecked()==true){
  10.             equip = "Barbell";
  11.             AddToEquipTable(equip);
  12.         }
  13.         if (cablemachine.isChecked()==true){
  14.             equip = "Cable Machine";
  15.             AddToEquipTable(equip);
  16.         }
  17.         if (pullupbar.isChecked()==true){
  18.             equip = "Pull Up Bar";
  19.             AddToEquipTable(equip);
  20.         }
  21.         if (legpressmachine.isChecked()==true){
  22.             equip = "Leg Press Machine";
  23.             AddToEquipTable(equip);
  24.         }
  25.         if (legextensionmachine.isChecked()==true){
  26.             equip = "Leg Extension Machine";
  27.             AddToEquipTable(equip);
  28.         }
  29.         if (hamstringcurlmachine.isChecked()==true){
  30.             equip = "Hamstring Curl Machine";
  31.             AddToEquipTable(equip);
  32.         }
  33.         if (kettlebells.isChecked()==true){
  34.             equip = "Kettlebells";
  35.             AddToEquipTable(equip);
  36.         }
  37.         if (none.isChecked()==true){
  38.             equip = "None";
  39.             AddToEquipTable(equip);
  40.         }
  41.  
  42.  
  43.     }
  44. });
  45.        
  46. public void AddToEquipTable(String equip){
  47.  
  48. ExerciseDatabase equipment = new ExerciseDatabase(WorkMeOutActivity.this);
  49. try {
  50.     equipment.open();
  51. } catch (SQLException e) {
  52.     // TODO Auto-generated catch block
  53.     e.printStackTrace();
  54. }
  55.  
  56. equipment.AddToEquipmentDBFromBiceps(equip);
  57. equipment.AddToEquipmentDBFromChest(equip);
  58. equipment.AddToEquipmentDBFromBack(equip);
  59. equipment.AddToEquipmentDBFromTriceps(equip);
  60. equipment.AddToEquipmentDBFromShoulders(equip);
  61. equipment.AddToEquipmentDBFromLegs(equip);
  62. equipment.AddToEquipmentDBFromCompound(equip);
  63.  
  64. equipment.close();
  65. }
  66.        
  67. public String AddToEquipmentDBFromBiceps(String equip) {
  68.     // TODO Auto-generated method stub
  69.     String[] columns = new String[]{KEY_REPS, KEY_EXERCISE, KEY_TIMETYPE};
  70.     ContentValues cv = new ContentValues();
  71.     Cursor c = ourDatabase.query(DATABASE_BICEPSTABLE, columns, KEY_EQUIP + "='" + equip + "'", null, null, null, null);
  72.  
  73.     if (c == null){
  74.         return null;
  75.     }
  76.     else if(c != null){
  77.  
  78.         c.moveToFirst();
  79.  
  80.         int iReps = c.getColumnIndex(KEY_REPS);
  81.         int iExercise = c.getColumnIndex(KEY_EXERCISE);
  82.         int iTimeType = c.getColumnIndex(KEY_TIMETYPE);
  83.  
  84.  
  85.  
  86.         do{
  87.  
  88.             String reps = c.getString(iReps);
  89.             String exercise = c.getString(iExercise);
  90.             String time = c.getString(iTimeType);
  91.  
  92.             cv.put(KEY_REPS, reps);
  93.             cv.put(KEY_EXERCISE, exercise);
  94.             cv.put(KEY_TIMETYPE, time);
  95.  
  96.             ourDatabase.insert(DATABASE_CHOSEN_EQUIP_TABLE, null, cv);
  97.  
  98.             c.moveToNext();
  99.  
  100.             }while(KEY_EQUIP == equip);
  101.         }
  102.  
  103.  
  104.     return null;
  105. }
  106.        
  107. 06-24 09:34:42.785: E/AndroidRuntime(20592): FATAL EXCEPTION: main
  108. 06-24 09:34:42.785: E/AndroidRuntime(20592): android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
  109. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580)
  110. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214)
  111. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41)
  112. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at com.work.me.out.ExerciseDatabase.AddToEquipmentDBFromLegs(ExerciseDatabase.java:896)
  113. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at com.work.me.out.WorkMeOutActivity.AddToEquipTable(WorkMeOutActivity.java:456)
  114. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at com.work.me.out.WorkMeOutActivity$9.onClick(WorkMeOutActivity.java:395)
  115. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at android.view.View.performClick(View.java:2538)
  116. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at android.view.View$PerformClick.run(View.java:9152)
  117. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at android.os.Handler.handleCallback(Handler.java:587)
  118. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at android.os.Handler.dispatchMessage(Handler.java:92)
  119. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at android.os.Looper.loop(Looper.java:130)
  120. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at android.app.ActivityThread.main(ActivityThread.java:3687)
  121. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at java.lang.reflect.Method.invokeNative(Native Method)
  122. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at java.lang.reflect.Method.invoke(Method.java:507)
  123. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
  124. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
  125. 06-24 09:34:42.785: E/AndroidRuntime(20592):    at dalvik.system.NativeStart.main(Native Method)
  126.        
  127. while (c.moveToNext() && KEY_EQUIP == equip);
  128.        
  129. else if(c != null && c.moveToFirst()) {
  130.         int iReps = c.getColumnIndex(KEY_REPS);
  131.         int iExercise = c.getColumnIndex(KEY_EXERCISE);
  132.         int iTimeType = c.getColumnIndex(KEY_TIMETYPE);
  133.         do {
  134.             String reps = c.getString(iReps);
  135.             String exercise = c.getString(iExercise);
  136.             String time = c.getString(iTimeType);
  137.  
  138.             cv.put(KEY_REPS, reps);
  139.             cv.put(KEY_EXERCISE, exercise);
  140.             cv.put(KEY_TIMETYPE, time);
  141.  
  142.             ourDatabase.insert(DATABASE_CHOSEN_EQUIP_TABLE, null, cv);
  143.             } while (c.moveToNext() && KEY_EQUIP == equip);
  144.         }
  145.        
  146. final String SELECT_QUERY = "SELECT " + KEY_REPS + ", " + KEY_EXERCISE + ", " + KEY_TIMETYPE + " FROM " + DATABASE_BICEPSTABLE + " WHERE " + KEY_EQUIP + " = ?";
  147. Cursor c = db.rawQuery(SELECT_QUERY, new String[] {equip});
  148.        
  149. if(c != null && c.moveToFirst()) {
  150.     int iReps = c.getColumnIndex(KEY_REPS);
  151.     int iExercise = c.getColumnIndex(KEY_EXERCISE);
  152.     int iTimeType = c.getColumnIndex(KEY_TIMETYPE);
  153.  
  154.     do {
  155.         String reps = c.getString(iReps);
  156.         String exercise = c.getString(iExercise);
  157.         String time = c.getString(iTimeType);
  158.  
  159.         cv.put(KEY_REPS, reps);
  160.         cv.put(KEY_EXERCISE, exercise);
  161.         cv.put(KEY_TIMETYPE, time);
  162.  
  163.         ourDatabase.insert(DATABASE_CHOSEN_EQUIP_TABLE, null, cv);    
  164.     } while(c.moveToNext() && KEY_EQUIP == equip);
  165. } else {
  166.     return null;
  167. }