Основная проблема (не единственная) заключается в том, что внутри deleteContent()
, хотя вы создаете оператор SQL, вы никогда не выполняете его, скажем, execSQL()
.
Поэтому не делается никаких попыток удалить какую-либо строку.
Однако вы должны изменить это, чтобы использовать метод delete()
, например:
public int deleteContent(String goalDate, String goalWeight, String currentWeight){
SQLiteDatabase db = this.getWritableDatabase();
String where = "GDATE = ? AND GWEIGHT = ? AND CWEIGHT = ?";
int rows = db.delete(TABLE_NAME, where, new String[] {goalDate, goalWeight, currentWeight});
db.close();
return rows;
}
Это рекомендуемый способ, поскольку он безопасен и также возвращает количество затронутых / удаленных строк (которое вы можете проверить, чтобы проверить, было ли удаление успешным).
Таким образом, вы можете использовать его так:
int rows = myDB.deleteContent(
goalD.getText().toString(),
goalW.getText().toString(),
currentW.getText().toString()
);
и в переменной rows
у вас будет количество удаленных строк.