У меня есть база данных SQlite и представление списка, заполненное новостными статьями. Я могу добавлять статьи в избранное просто отлично. Когда я пытаюсь удалить его, он не работает.
Я следовал руководству по CodingWithMitch и убедился, что мои операторы SQl идентичны, но моя программа не работает.
Избранное Деятельность
//Deleting favorites
favoritesList.setOnItemLongClickListener(new
AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
//final ArrayList<ListViewDetails> details = new ArrayList<>();
//Cursor takes in a ListViewDetails object for a specific new article
final Cursor cursor = databaseHelper.getID(details.get(position));
//This is to test if the correct list view object is retrieved - Works
Log.i("Test", details.get(position).link);
//So the code won't reach this point and therefore nothing is executed
int favoriteId = -1;
while (cursor.moveToNext()) {
favoriteId = cursor.getInt(0);
}
if (favoriteId > -1) {
if (databaseHelper.delete(favoriteId) > 0) {
Toast.makeText(getApplicationContext(), "Deleted", Toast.LENGTH_SHORT).show();
Log.i("Delete", "It works!");
adapter.remove(details.get(position));
adapter.notifyDataSetChanged();
}
}
DatabaseHelper класс
public static final String COL0 = "ID";
public static final String COL1 = "TITLE";
public static final String COL2 = "PHOTO_URL";
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE " + TABLE_NAME + " ( " +
COL0 + " INTEGER PRIMARY KEY AUTOINCREMENT, "
...
public Cursor getID(ListViewDetails listViewDetails){
SQLiteDatabase db = this.getWritableDatabase();
String sql = "SELECT * FROM " + TABLE_NAME + " WHERE " +
COL1 + " = '" + listViewDetails.getLink() + "'" +
" AND " + COL2 + " = '" + listViewDetails.getTitle() + "'";
return db.rawQuery(sql,null);
}
public Integer delete(int id) {
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(TABLE_NAME, "ID = ?", new String[] {String.valueOf(id)});
}
Просто пытаюсь выяснить, почему код не достигнет цикла while.
UPDATE
Неосторожная ошибка с синтаксисом SQL. Решение принято.