java - 未从具有 Room 的数据库中选择数据

标签 java android sql android-room

我有以下代码:

private void onAddClick(){
        String title = mTitleEdit.getText().toString();
        String body = mBodyEdit.getText().toString();
        Note note = new Note();
        note.setTitle(title);
        note.setBody(body);
        noteDao.insertNote(note);
        notes = noteDao.getNotes();
        adapter = new RecyclerViewAdapter(notes, getApplicationContext());
        mNotesRecycler.setAdapter(adapter);
    }

因此,这段代码应该将数据添加到数据库,选择它并添加到适配器后,然后将此适配器添加到recyclerview。但数据不是从数据库中选择的,因此 note 数组始终为空,我不明白为什么。表 Note 有数据(我在 Stetho 中观看)。所以,据我了解,选择存在问题。

DAO接口(interface)的方法如下:

@Query ("SELECT * FROM NOTE")
    List<Note> getNotes();
@Insert (onConflict = OnConflictStrategy.REPLACE)
    void insertNote(Note note);

那么,这是怎么回事?

最佳答案

获取数据后您是否尝试过使用adapter.notifyDataSetChanged()

关于java - 未从具有 Room 的数据库中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56245187/

相关文章:

java - Mediastore.Audio.Media 获取最近添加的歌曲,类似于 native 播放器

android - 如何在 Android 中将 LatLng 添加到 List<LatLng> 中?

android - 如何在 Android 中以编程方式设置样式属性?

sql - 变长子串

sql - 合并多个表中的值而不重复

java - RecyclerView 中的 AsyncTask 抛出 You can not start a load for a destroyed Activity on Callback

java - 使用 GSON 进行 JSON 解析

java - 为什么正则表达式得到 stackOverFlow

php - 使用PHP从android连接mysql

sql - SQL 查询中 INSERT、DELETE 和 UPDATE 的逻辑查询处理阶段