Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 房间持久性库(更新问题)_Android_Kotlin_Android Room - Fatal编程技术网

Android 房间持久性库(更新问题)

Android 房间持久性库(更新问题),android,kotlin,android-room,Android,Kotlin,Android Room,问题:大家好,我在Room持久性库中遇到了一个问题。我能够第一次和第二次更新数据库中实体的已创建行,但当我第三次查询数据库以更新同一行时,它不会得到更新 使用的组件:Kotlin、Android架构(Room Persistence Library、ViewModel)和Dagger2 使用的版本:1.1.1 设备/Android版本复制于:所有设备 源代码位于:我查看了您的代码 首先,在测试实体中使用@PrimaryKey(autoGenerate=true) 尽管您声明了一个id为0的测试,

问题:大家好,我在Room持久性库中遇到了一个问题。我能够第一次和第二次更新数据库中实体的已创建行,但当我第三次查询数据库以更新同一行时,它不会得到更新

使用的组件:Kotlin、Android架构(Room Persistence Library、ViewModel)和Dagger2

使用的版本:1.1.1

设备/Android版本复制于:所有设备


源代码位于:

我查看了您的代码

首先,在测试实体中使用@PrimaryKey(autoGenerate=true)

尽管您声明了一个id为0的测试,但注释为您生成了id。例如,第一个项目的id为1,第二个项目的id为2,以此类推

第二,看看您的TestDao

@Query("SELECT * FROM ${Test.TABLE_NAME}")
    fun getTest(): LiveData<Test>
@Query(“从${Test.TABLE_NAME}中选择*)
fun getTest():LiveData
您只使用一个测试来获取所有项目,您将只获取所有测试中的第一个项目


由于这两个问题,您的第二次保存创建了一个id为2的测试,并且您的getTest()总是返回id为1的测试,这会将edittext更改回原来的状态

提供更多信息。Alien,我正在更新实体行参数值。第一次和第二次,它的值正在更新,但第二次之后,它既不更新已创建的行值,也不为该实体创建新行。您可以在此处发布代码片段吗?@SamirBhatt请在此链接查找源代码:@Alien您可以在此链接获取更多信息和源代码: