Error updating or deleted from database; "could not execute method"
===

First off, let me apologise for the length of this post but I've been pouring over the code for hours and I'm lost. I'm also pretty confused by the db aspects so my code duplicates some of the simplest tutorials I could find, even though I know aspects are deprecated or there are other methods which reduce the code length. I wasn't sure what was required or not, hence the large amount of code below.

The goal: I have a form that a user can fill in and save to a DB Table. I then display this data in another class to a ListView (this class also has additional functions above the listview). By clicking on one of the listview items, another form opens that looks identical to the original form, with all the info already populated from the database row. This form has a save and delete button which either lets you change some of the entry fields (EditText's and Spinner's) and save to update the row, or select delete. After updating or deleting, the activity finishes and takes you back to the listview class.

I won't bother adding the original form data as I know that is saving correctly. I also know that my data is transferring correctly into secondary form (the one I can modify/delete from), but I get the following in my logcat when trying to update or delete:

    java.lang.IllegalStateException: Could not execute method of the activity

 My AddDBHelper class looks like this:

    public class AddDBHelper {
	
	public static final String KEY_ROWID ="_id";
	public static final String KEY_CATEG = "Category";
	public static final String KEY_CATEGPOS = "Category_Pos";
	public static final String KEY_BGL = "BGL";
	public static final String KEY_CARBS = "Carbs";
    public static final String DB_NAME = "Glucometer.db";
	public static final String DB_TABLE = "Journal";
	private static final int DB_VERSION = 1;
	
	private DbHelper myDBHelper;
	private final Context mContext;
	private SQLiteDatabase glucoDB;
	
	private static class DbHelper extends SQLiteOpenHelper {
		
		public DbHelper(Context context) {
			super(context, DB_NAME, null, DB_VERSION);
		}
		
		
		@Override
		public void onCreate(SQLiteDatabase db) {
			db.execSQL("CREATE TABLE " + DB_TABLE + " (" +
				KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
				KEY_CATEG + " TEXT NOT NULL, " +
				KEY_CATEGPOS + " TEXT NOT NULL, " +
				KEY_BGL + " TEXT NOT NULL, " +
				KEY_CARBS + " TEXT NOT NULL);"

    );}
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
			db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE);
			onCreate(db);
		}
				
	}
	
	
	public AddDBHelper(Context c) {
		mContext = c;
	}
	
	public AddDBHelper open() throws SQLException {
		myDBHelper = new DbHelper(mContext);
		glucoDB = myDBHelper.getWritableDatabase();
		return this;
	}
	
	public void close() {
		myDBHelper.close();
	}
	
	public long createEntry(String Category, String CategoryPos, String BGL, String Carbs) {
		ContentValues cv = new ContentValues();
		cv.put(KEY_CATEG, Category);
		cv.put(KEY_CATEGPOS, CategoryPos);
		cv.put(KEY_BGL, BGL);
		cv.put(KEY_CARBS, Carbs);
    return glucoDB.insert(DB_TABLE, null, cv); }

    public Cursor getEntries() {		
		return glucoDB.query(DB_TABLE, new String[] {
				KEY_ROWID,
				KEY_CATEG,
				KEY_CATEGPOS,
				KEY_BGL,
				KEY_CARBS}, null, null, null, null, null); }

    public void updateDetails(DBDetails dbdetails) {
		SQLiteDatabase db = myDBHelper.getWritableDatabase();
		
		ContentValues cv = new ContentValues();
		cv.put(AddDBHelper.KEY_ROWID, UpdateDBDetails.newRow);
		cv.put(AddDBHelper.KEY_CATEG, UpdateDBDetails.newCateg);
		cv.put(AddDBHelper.KEY_CATEGPOS, UpdateDBDetails.newCategPos);
		cv.put(AddDBHelper.KEY_BGL, UpdateDBDetails.newBGL);
		cv.put(AddDBHelper.KEY_CARBS, UpdateDBDetails.newCarbs);
		
		db.update(DB_TABLE, cv, KEY_ROWID + "=?", new String[] {String.valueOf(UpdateDBDetails.newRow)});
	}
	
	
	public void deleteDetails(DBDetails dbdetails) {
		SQLiteDatabase db = myDBHelper.getWritableDatabase();
		db.delete(DB_TABLE, KEY_ROWID +"=?", 
				new String[] {String.valueOf(UpdateDBDetails.newRow)});
		db.close();
	}}

My ListView Activity is as follows:

    public class FuncLogbook extends DashMenuActivity implements OnItemClickListener {
	
	private ListView list_LogbookResults;
	private ListAdapter list_LogbookAdap;
	private ArrayList<DBDetails> LogbookArrayList;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView (R.layout.dash_logbook);
	    
	    list_LogbookResults = (ListView) findViewById(R.id.list_logbookResults);
	    list_LogbookResults.setOnItemClickListener(this);
	    
	    LogbookArrayList = new ArrayList<DBDetails>();
	    list_LogbookAdap = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, populateList());
	    list_LogbookResults.setAdapter(list_LogbookAdap); }

    @SuppressWarnings("deprecation")
	public List<String> populateList() {
		List<String> BGLResultsList = new ArrayList<String>();
		
		AddDBHelper logbook = new AddDBHelper(this);
		logbook.open();
		Cursor cur = logbook.getEntries();
		startManagingCursor(cur);
		
		while (cur.moveToNext()) {
			String RowID = cur.getString(0);
			String Category = cur.getString(1);
			String CategoryPos = cur.getString(2);
			String BGL = cur.getString(3);
			String Carbs = cur.getString(4);
			
			
			DBDetails detailsClass = new DBDetails();
			detailsClass.setuCateg(Category);
			detailsClass.setuCategPos(CategoryPos);
			detailsClass.setuBGL(BGL);
			detailsClass.setuCarbs(Carbs);
			
			
			LogbookArrayList.add(detailsClass);
			BGLResultsList.add("BGL: " + BGL + "\nRow ID: " + RowID);
		}

		return BGLResultsList;
	}
	
	@Override
	protected void onResume() {
		super.onResume();
		LogbookArrayList = new ArrayList<DBDetails>();
		list_LogbookAdap = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, populateList());
	    list_LogbookResults.setAdapter(list_LogbookAdap);
	}
	
	@Override
	protected void onStart() {
		super.onStart();
		LogbookArrayList = new ArrayList<DBDetails>();
		list_LogbookAdap = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, populateList());
	    list_LogbookResults.setAdapter(list_LogbookAdap);
	}
	
	public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {		
		Intent UpdateDBDetails = new Intent(this, UpdateDBDetails.class);
		
		DBDetails clickedObject = LogbookArrayList.get(arg2);
		Bundle dataBundle =  new Bundle();
		dataBundle.putString("clickeduCateg", clickedObject.getuCateg());
		dataBundle.putString("clickeduCategPos", clickedObject.getuCategPos());
		dataBundle.putString("clickeduBGL", clickedObject.getuBGL());
		dataBundle.putString("clickeduCarbs", clickedObject.getuCarbs());
		
				
		UpdateDBDetails.putExtras(dataBundle);
		startActivity(UpdateDBDetails);
	}}

The data is gathered to my DBDetails class:

    public class DBDetails {

	private String uCateg;
	private String uCategPos;
	private String uBGL;
	private String uCarbs;

    public String getuCateg() {
		return uCateg;
	}
	
	public void setuCateg(String uCateg) {
		this.uCateg = uCateg;
	}
	
	public String getuCategPos() {
		return uCategPos;
	}
	
	public void setuCategPos(String uCategPos) {
		this.uCategPos = uCategPos;
	}
	
	public String getuBGL() {
		return uBGL;
	}
	
	public void setuBGL(String uBGL) {
		this.uBGL = uBGL;
	}
	
	public String getuCarbs() {
		return uCarbs;
	}
	
	public void setuCarbs(String uCarbs) {
		this.uCarbs = uCarbs;
	}

And finally, my form that displays the data:

    @Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.updatedbdetails);

    update_category_spinner = (Spinner) findViewById(R.id.update_category_spinner);
	    ArrayAdapter<CharSequence> category_adapter = ArrayAdapter.createFromResource(
	    		this, R.array.category_array, android.R.layout.simple_spinner_item);
	    
	    category_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
	    update_category_spinner.setAdapter(category_adapter);
	    
	    update_category_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
			public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
				newCat = update_category_spinner.getSelectedItem().toString();
				newCatPos = (update_category_spinner.getSelectedItemPosition() + " Position");
			}
			
			public void onNothingSelected(AdapterView<?> arg0) {
				
			}
		});

    Bundle takeBundledData = getIntent().getExtras();
		
		bundleduRowId = takeBundledData.getString("clickeduRowId");
		bundleduCateg = takeBundledData.getString("clickeduCateg");
		bundleduCategPos = takeBundledData.getString("clickeduCategPos");
		bundleduBGL = takeBundledData.getString("clickeduBGL");
		bundleduCarbs = takeBundledData.getString("clickeduCarbs");

    CategoryPosition = String.valueOf(bundleduCategPos.charAt(0));
		update_category_spinner.setSelection(Integer.parseInt(CategoryPosition), true);
    update_edit_bgl.setText(bundleduBGL);
		update_edit_carbs.setText(bundleduCarbs); }

    public static double round(double unrounded, int precision, int roundingMode) {
		BigDecimal bd = new BigDecimal(unrounded);
		BigDecimal rounded = bd.setScale(precision, roundingMode);
		return rounded.doubleValue();
	}
	
	
	public void checkNewBGL() {
		String checkBGL = update_edit_bgl.getText().toString();
		if (checkBGL.matches("")) {
			NewBGLValid = "";
		} else {
			float BGLUnRound = Float.parseFloat(update_edit_bgl.getText().toString());
			 double BGLRound= round(BGLUnRound, 1, BigDecimal.ROUND_HALF_UP);
			 NewBGLValid = String.valueOf(BGLRound);
		}
		return;
		}
		
		public void checkNewCarbs() {
		String checkCarbs = update_edit_carbs.getText().toString();
		if (checkCarbs.matches("")) {
			NewCarbsValid = "0";
		} else {		
			NewCarbsValid = update_edit_carbs.getText().toString();
		}
		return;
		}

    public void clickUpdateDelete(View v) {
		
		checkNewBGL();
		checkNewCarbs();
			
		newCateg = newCat;
		newCategPos = newCatPos;
		newBGL = NewBGLValid;
		newCarbs = NewCarbsValid;

    DBDetails dbdetails = new DBDetails();
		
		dbdetails.setuCateg(newCateg);
		dbdetails.setuCategPos(newCategPos);
		dbdetails.setuBGL(newBGL);
		dbdetails.setuCarbs(newCarbs);

    if (v.getId() == R.id.update_button_delete) {
			AddDBHelper deleteEntry = new AddDBHelper(this);
			deleteEntry.deleteDetails(dbdetails);
		} else if (v.getId() == R.id.update_button_save) {
			AddDBHelper updateEntry = new AddDBHelper(this);
			updateEntry.updateDetails(dbdetails);
		}	
	}}