嗨,我想删除行在我的数据库正在显示在一个回收器视图,当我点击删除按钮的数据被删除,但我的recyclerView不会更新,我的应用程序崩溃。
这是我的删除方法
public int deleteNote(int id) {
SQLiteDatabase db = getWritableDatabase();
return db.delete(TABLE_NAME,"id=?",new String[] {String.valueOf(id)});
}
这里是我的RV适配器弹出菜单,当我点击删除数据库的行被删除,但我的应用程序崩溃
holder.more.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(c,holder.more);
popupMenu.inflate(R.menu.more_menu);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()){
case R.id.delete:
Note note = notes.get(position);
NoteDBAdapter noteDBAdapter = new NoteDBAdapter(c);
int result = noteDBAdapter.deleteNote(notes.get(position).getId());
if (result > 0){
Toast.makeText(c, "success", Toast.LENGTH_SHORT).show();
notes.remove(notes.get(position));
notifyDataSetChanged();
}else {
Toast.makeText(c, "failed", Toast.LENGTH_SHORT).show();
}
default:
return false;
}
}
});
popupMenu.show();
}
});
我很感激任何提示…
当您尝试从数组中选择超出其大小的值时,会发生IndexOutOfBoundsException。
检查数组或任何类似的东西,从哪里存储数据和获取数据。