gpt4 book ai didi

java - Android Mvvm,具有多个 Activity 的应用程序

转载 作者:行者123 更新时间:2023-12-03 10:15:31 25 4
gpt4 key购买 nike

我是 android 的新手,我正在开发一个应用程序,该应用程序使用 kotlin 中的 retrofit 和 kodein 和 MvvM 从服务器检索数据我在我的应用程序中设置了一个抽屉导航,目的是当我点击抽屉导航的项目时新 Activity 开始,在这个 Activity 中我想展示 recyclerview但是当新 Activity 打开 recyclerview 时无法在回收站上设置 listitem我在我的存储库和 View 模型类中调试我的代码,我看到它们收到了数据我在新 Activity 中调试我的代码,我看到 viewmodel 无法接收这些数据,并在 viewmodel.observe 中的代码旁边设置了一个无效图标

这是我的存储库类:

 fun getdigitalproduct(): LiveData<List<DigitalProduct>>{
val dpData:MutableLiveData<List<DigitalProduct>> = MutableLiveData<List<DigitalProduct>>()
val apiClient = ApiClient()

val call:Call<List<DigitalProduct>> = apiClient.getClient().create(ApiService::class.java).getdigitalproduct()
call.enqueue(object : Callback<List<DigitalProduct>>{
override fun onResponse(
call: Call<List<DigitalProduct>>,
response: Response<List<DigitalProduct>>
) {
dpData.value = response.body()
}

override fun onFailure(call: Call<List<DigitalProduct>>, t: Throwable) {
dpData.value = null
}

})
return dpData
}

这是为了 ViewModel

var repoDigitalProduct: LiveData<List<DigitalProduct>> = repositorys.getdigitalproduct()
fun getdigitalproduct(): LiveData<List<DigitalProduct>>{
return repoDigitalProduct
}

这是新 Activity :

  private fun getDigitalProduct() {
viewModel.getdigitalproduct().observe(this, Observer {
digipro.addAll(it)
})

这是数码相机:

var digipro: ArrayList<DigitalProduct> = ArrayList()

我在新 Activity 的 oncreate 方法中使用这段代码:

  viewModel = ViewModelProviders.of(this, factory).get(AllViewModel::class.java)
getDigitalProduct()
setdigitalProductRecycler()

我也在 Mainactivity 中使用 viewmodelprovider.of 代码

这是用于 setdigitalProductRecycler 的:

 private fun setdigitalProductRecycler() {
val digiproRecycler = digital_product_recycler
digiproRecycler.layoutManager =
LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true)
digiproRecycler.adapter = DigitalProductAdapter(digipro)
}

我的代码在 Mainactivity 中有效,但是当我在新 Activity 中尝试时.........

我该怎么办?

最佳答案

解决此问题的最佳方法是在 Activity 中创建您的 View 模型,或者您可以使用共享 View 模型。因此,您的 View 模型将随着您的 Activity 保留而保留

https://stackoverflow.com/a/52611554/8868638

关于java - Android Mvvm,具有多个 Activity 的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65086560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com