Мне нужна ваша помощь. Я хочу удалить данные из моей базы данных SwipeToDelete внутри RecyclerView.Удалить данные из базы данных внутри RecycleView
У меня уже есть класс Swipe, который удаляет элементы из RecycleView, и я могу удалить элементы из этого списка, но не из базы данных.
Я пытался вызвать базу данных внутри NoteAdapater (Ресайклер адаптер) и удалить элемент, который я хочу с помощью метода RemoveItem (целое положение), как это:
public void removeItem(int position){
db.deleteNote(position);
noteList.remove(position);
notifyItemRemoved(position);
}
Вот код MainActivity:
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
NoteAdapter adapter;
List<Note> myList;
FloatingActionButton fab;
DBHelper db = new DBHelper(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
initializeViews();
myList = db.getAllNotes();
adapter = new NoteAdapter(this,myList);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(adapter);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNewNote();
}
});
ItemTouchHelper.Callback callback = new Swipe(adapter);
ItemTouchHelper helper = new ItemTouchHelper(callback);
helper.attachToRecyclerView(recyclerView);
}
код из базы данных, которая удаляет данные:
public void deleteNote(int note){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_NAME, KEY_ID + " = ?",new String[] {String.valueOf(note)});
}
Вы получаете какую-либо ошибку при удалении или что? –
@AlexanderPerfilyev Я получаю исключение NullPointeException. Я думаю, что Im не инициализирует мой DatabaseHelper правильно ... –
yep, просто передайте 'db' в качестве параметра конструктора для вашего адаптера, и он должен работать. –