т.к. у вас данные хранятся в бд - есть несколько способов это сделать:
1) использовать room - он сам будет управлять данными в бд. примеров в интернете работы с room уже достаточно много.
2) сделать интерфейс в активити, объявить метод и передавать его в адаптер. Обработку нажатия на элемент в вашем случае лучше обрабатывать сразу в активити - для этого назначить нужному элементу android:onClick, после описать метод в активити. Для динамических обновлений данных в адаптере тоже существует 2 способа:
а) каждый раз передавать новый курсор в адаптер - что может быть накладным и приводить к тормозам при работе.
б) сделать отдельный массив, например SparseIntArray, который будет отвечать за динамическую часть. Передавать его в адаптер, объявить методы в адаптере на изменение динамических данных, и вызывать mAdapter.notifyDataSetChanged() при изменении данных.