일기장 앱 특성상 데이터를 실수로 삭제할 경우를 대비하여 데이터를 복원할 수 있는 로직이 있으면 좋겠다고 생각하여 작성했습니다.
삭제할 데이터를 따로 저장해놓고, 삭제 후 Snackbar
의 복원 버튼을 누르면 데이터를 다시 삽입하는 원리입니다.
다음 코드는 Snackbar
를 이용하여 데이터를 삭제 후 다시 복원하는 코드입니다.
diaryAdapter.setOnItemClickListener { diary ->
AlertDialog.Builder(context).setItems(words) { dialog, which ->
when (which) {
1 -> {
Snackbar.make(requireView(), "데이터를 성공적으로 삭제했습니다.", Snackbar.LENGTH_LONG).apply {
viewModel.deleteDiary(diary)
setAction("복원") {
viewModel.saveDiary(diary)
}
show()
}
}
}
}.show()
}