AndroidRoom数据库不通知我有关LiveData更改的信息。
创始人
2024-10-09 20:30:39
0

您可以使用以下代码示例来确保LiveData能够正常通知数据更改:

首先,您需要在DAO接口中声明LiveData对象:

@Dao interface UserDao { @Query("SELECT * FROM user_table") fun getAllUsers(): LiveData> }

然后,在ViewModel中观察LiveData对象,并在数据更改时更新UI:

class UserViewModel(application: Application) : AndroidViewModel(application) { private val userRepository: UserRepository val allUsers: LiveData>

 init {
      val userDao = UserRoomDatabase.getDatabase(application).userDao()
      userRepository = UserRepository(userDao)
      allUsers = userRepository.allUsers
 }

}

最后,在Activity或Fragment中观察LiveData对象并更新UI:

class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private lateinit var userViewModel: UserViewModel

 override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)

      binding = ActivityMainBinding.inflate(layoutInflater)
      setContentView(binding.root)

      userViewModel = ViewModelProvider(this).get(UserViewModel::class.java)

      userViewModel.allUsers.observe(this, Observer { users ->
           // 更新UI中的用户列表
      })
 }

}

通过这些代码,您应该能够正确地观察LiveData对象和在数据更改时更新UI。

相关内容

热门资讯

七分钟实锤!智星德州菠萝有挂吗... 七分钟实锤!智星德州菠萝有挂吗(来玩德州app)本来真的是有挂(详细辅助线上教程)1、在智星德州菠萝...
5分钟实锤!德扑ai助手(德州... 5分钟实锤!德扑ai助手(德州机器人)果然真的是有挂(详细辅助透牌教程);德扑ai助手辅助器中分为三...
6分钟实锤!德扑之星有猫腻(德... 6分钟实锤!德扑之星有猫腻(德州app)切实存在有挂(详细辅助总结教程);1、每一步都需要思考,不同...
7分钟实锤!德州ai辅助软件(... 7分钟实锤!德州ai辅助软件(德州nzt)真是真的是有挂(详细辅助细节方法)1、超多福利:超高返利,...
6分钟实锤!德扑ai助手(德扑... 6分钟实锤!德扑ai助手(德扑)本来是真的有挂(详细辅助教你教程)1、德扑ai助手系统规律教程、德扑...
七分钟实锤!德扑之星猫腻(智星... 七分钟实锤!德扑之星猫腻(智星德州)原来真的是有挂(详细辅助辅助教程)1、德扑之星猫腻ai机器人多个...
第3分钟实锤!德州ai机器人(... 第3分钟实锤!德州ai机器人(线上wpk德州)切实是真的有挂(详细辅助新版2025教程)进入游戏-大...
9分钟实锤!德扑ai智能机器人... 9分钟实锤!德扑ai智能机器人(线上wpk德州)切实是有挂(详细辅助存在挂教程)德扑ai智能机器人软...
第九分钟实锤!德州之星辅助挂(... 第九分钟实锤!德州之星辅助挂(云扑克德州)果然真的有挂(详细辅助系统教程)1、在德州之星辅助挂ai机...
第4分钟实锤!德州之星插件(德... 第4分钟实锤!德州之星插件(德州nzt)切实有挂(详细辅助普及教程)1、德州之星插件ai辅助优化,德...