当前位置: 首页 > 知识库问答 >
问题:

如何修复ROOM android中“不确定如何将光标转换为该方法的返回类型”

吴哲
2023-03-14

我正在使用房间来建立简单的笔记应用程序。下面是我的note实体类:

@Entity(tableName = "notes")
public class Note {
    @PrimaryKey(autoGenerate = true)
    private long id;
    @ColumnInfo(name = "description")
    private String description;
    @Ignore
    public Note() {
    }

    public Note(String description) {
        this.description = description;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
@Dao
public interface NoteDAO {


    @Insert
    public long[] insertNote(Note... note);

    @Update
    public void updateNote(Note note);

    @Delete
    public void deleteNote(Note note);

    @Query("Select * from notes")
     LiveData<List<Note>> getAllNotes();
}
public class NoteRepository {
    NoteDatabase mNoteDatabase;

    public NoteRepository(Context context) {
        this.mNoteDatabase = NoteDatabase.getInstance(context);
    }
    public void insertNote(Note note){
//        mNoteDatabase.getNodeDAO().insertNote(note);
        new InsertAsync(mNoteDatabase.getNodeDAO()).execute(note);
    }
    public void updateNote(Note note){
    mNoteDatabase.getNodeDAO().updateNote(note);
    }
    public void deleteNote(Note note){
    mNoteDatabase.getNodeDAO().deleteNote(note);
    }
    public LiveData<List<Note>> getAllNotes(){
       return  mNoteDatabase.getNodeDAO().getAllNotes();

    }
}
private void retrieveNote() {
    mNoteRepository.getAllNotes().observe(this, new Observer<List<Note>>() {
        @Override
        public void onChanged(@Nullable List<Note> notes) {
            if(data.size()>0){
                data.clear();
            }
            if(data!=null){
                data.addAll(notes);
            }
            adapter.notifyDataSetChanged();
        }
    });
    }

我希望它会返回一个注释列表。但是我的应用程序崩溃了,这个错误消息显示“不确定如何将光标转换为该方法的返回类型”。

共有1个答案

邴俊达
2023-03-14

我通过更新到AndroidX解决了这个问题。您可以在这里找到链接:https://developer.android.com/jetpack/androidx/migrate

如果您使用的是android Studio3.2,只需转到Refactor->MIGRATE to AndroidX。

 类似资料:
  • 我正在尝试将此对象保存在Room数据库中,我读到了Typconverters用于将复杂对象转换为一个可以存储在数据库中的文件。我收到这个错误:错误:不确定如何将光标转换为此方法的返回类型(androidx.lifecycle.LiveData 我的问题类别: 我的dao类: 我的数据库类: 我的转换器类别:

  • 使用我得到了这个错误,我想找出是哪种方法导致的。 我有多个s,总共大约有60个方法,这个错误只是在添加一个方法(复制 我可以发布整个类的s,但是我需要一种方法来知道哪个方法失败了。我尝试了,和,但是这些都没有显示任何有价值的信息。 我添加的方法是一个,带有返回类型,如在留档中建议的那样 UPDATE或DELETE查询可以返回空或int。如果是int,则该值是受此查询影响的行数。 编辑:我想补充一点

  • 我在这里看到了很多问题,但这些答案都没有解决我的问题。这是我的DAO: 我正试图得到一个包含在该类别中的食谱列表。我得到一个编译时错误,它说: C: 。。。\app\build\tmp\kapt3\stubs\debug\com\mitch\rcp\RecipeDAO。java:18:错误:不确定如何将游标转换为此方法的返回类型(void)。 但我的返回类型不是void?我不明白。

  • 我正在使用kotlin和room库开发一个android应用程序。当我试图获取插入项的id时,我得到了以下错误 不确定如何处理insert方法的返回类型。公共抽象java。lang.Object InsertReceive(@org.jetbrains.annotations.NotNull() 我尝试过其他类似的解决方案,但它不起作用 这是我的密码 收据kt 接收道。kt ReceiptRepo

  • 以下代码: 在流星启动时导致错误: 如何将数组转换为光标?或者像处理ArrayUtils一样处理数组。intersect()在查找查询中是否在此处操作?

  • 下面的方法调用RetrieveRecords方法,该方法是异步的,返回类型为Task<>。调用方法接受datatype作为DataView。现在我得到一个错误“不能从System.Data.DataView转换到System.Task.DataView。我知道这个错误是由于类型转换不匹配造成的。我如何将任务<>转换到DataView。这对我来说是非常必要的。我做了很多研究,但没有找到解决方案。 返