sqlite 数据库更改时更新适配器

bjp0bcyl  于 11个月前  发布在  SQLite
关注(0)|答案(1)|浏览(119)

我正在做一个简单的应用程序,它有一个带有RecyclerView的主活动。主活动从SQLiteOpenHelper类中获取笔记,并将笔记设置到适配器中。
还有其他活动可以创建新的笔记并将其记录在数据库中。没有“保存”按钮,因此保存工作在onStop()方法中完成,如下所示:

override fun onStop() {
        super.onStop()
        val textInputEditTitle : TextInputEditText = this.findViewById(R.id.textInputNoteTitle)
        val textInputEditText : TextInputEditText = this.findViewById(R.id.textInputNoteText)
        note = Note(textInputEditTitle.text.toString(), textInputEditText.text.toString())
        val dbHandler = DbHandler(this)
        dbHandler.insertNote(note)
        dbHandler.close()
    }

字符串
问题是当返回到主Activity时,RecommercerView不会显示新的注解。
我在主要活动中尝试了这个:

override fun onResume(){
        super.onResume()
        notes = dbHandler.getNotes()
        for(note in notes) Log.d(TAG, note.toString())
        noteAdapter.setData(notes)
        noteAdapter.notifyDataSetChanged()
    }


但是日志只显示旧的笔记,而不是新的。
理想情况下,我想调用SQLiteOpenHelper类中的insert update和delete方法来更新noteApater的数据,这样每次更新数据库时适配器也会更新。我不能这样做,因为第二个Activity必须知道适配器才能初始化数据库。
有糖吗?

dtcbnfnu

dtcbnfnu1#

你可以使用Room DB并从DB中获取观察者,然后在活动中观察它,如果你是Android Room的新手,你可以使用这个Android官方教程来学习东西-https://developer.android.com/codelabs/android-room-with-a-view-kotlin#0

相关问题