Пожалуйста, помогите мне понять. У меня есть приложение, в котором я добавляю элементы в базу данных, а затем отображаю его на ListView
. Почти все работает нормально, но когда я удаляю элементы через контекстное меню, то верхний первый элемент удаляется. Неважно, какой предмет я выберу.
@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, view, menuInfo);
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.delete_menu_item:
String itm_ps = itemView.getItemAtPosition(itemPos).toString();
ToDoDB.deleteData(itm_ps);
mAdapter.remove(itm_ps);
return true;
case R.id.quit_menu_item:
finish();
return true;
default:
return super.onContextItemSelected(menuItem);
}
}
И код запроса SQL:
public int deleteData(String value) {
SQLiteDatabase database = this.getWritableDatabase();
Cursor cursor = database.query(TABLE_NAME,null, null, null, null, null, null);
if (cursor.moveToFirst()) {
delete_result = database.delete(TABLE_NAME, KEY_ID + "=?", new String[]{value});
database.close();
}
return delete_result;
}
public Cursor viewData() {
SQLiteDatabase database = this.getReadableDatabase();
String query = "SELECT * FROM " + TABLE_NAME;
Cursor cursor = database.rawQuery(query, null);
return cursor;
}