问题标签 [android-mvvm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 使用架构组件构建的应用程序是否使其成为“MVVM”,如果是,应用程序的哪些部分与 MVVM 的哪一层相关?
我找不到任何直接回答这个问题的来源:
Android 架构组件是否遵循 MVVM 架构(如果实施得当)?如果是,应用程序的哪个部分(Activity/Fragment、ViewModel、存储库、数据库、Web 服务)与“模型”、“视图”和“视图模型”相关?ViewModel 类显然属于 ViewModel 层,但剩下的呢?
android - 如何让这个 ViewModelFactory 更灵活并接受不同种类的 ViewModel 类?
我复制了一个带有 Android 架构组件、Retrofit、Dagger 和数据绑定的 MVVM 示例。我将此代码用作我的应用程序的起点,以便开始在 Android 应用程序开发中使用更好的架构。但是,请使用以下代码:
和
和
主要问题是它卡在PostListViewModel
. 我想以一种动态的方式制作它,接受任何类型的[Name]ViewModel
课程。我确实尝试了一些使用方法Class<T>
,但我不再拥有代码。我也尝试过搜索,但没有得到好的结果。也许我没有搜索合适的术语。我很感激任何指导。
android - 如何解析 http 异常 401 上的成功正文响应?
即使服务器返回 401 HTTP 异常,我也试图解析实际的响应正文。
这就是我写的。当两者以通常的方式分开时,它可以很好地解析响应和错误。但是当我收到 401 HTTP 异常时,我想解析成功响应。
提前致谢..
401 HTTP 响应如下所示。
顺便说一句,我必须检查 HTTP 错误代码..
android - Android MVVM:从广播接收器观察数据库变化
在我的应用程序中,我需要从 BroadcastReceiver 在我的数据库中添加/删除/更新数据。我想知道这方面的最佳做法是什么。由于在主线程上调用了 onReceive,因此我需要一种在工作线程上运行查询的方法,并且在完成时我需要 onReceive 方法中的响应。
为此,我使用了像这样的简单观察者模式。
我将侦听器传递给我在侦听器上调用 onDbUpdate() 方法的存储库,从而在接收器中获得响应。
如果它是一个活动/片段而不是一个广播接收器,我会简单地使用一个带有实时数据的视图模型作为可观察对象,在我的活动中,我会观察视图模型是否有这样的变化
我的方法可以吗,还是有明显更好的方法在 BroadcastReceiver 中实现这一点?谢谢!!
dependency-injection - Dagger 2 多个存储库
所以我是 Dagger 2 依赖注入的新手。我创建了一个自定义 ViewModelFactory 类,它返回我的 ViewModel。
CustomViewModel
接受 a在MyCatchesRepository
构造函数中,然后创建MyCatchViewModel
. 我怎么能改变这个类,以便我可以使用这个 ViewModelFactory 来创建具有不同构造函数参数(存储库)的不同 ViewModel
这是创建 CustomViewModelFactory 的模块
视图模型模块
android - Android Room - 关系和 LiveData
我有一个Lure
类,其中包含一个ArrayList
类LureImage
,如下面的代码所示。在我的存储库中,我进行数据库调用以获取LiveData<List<Lure>>
,然后我执行一个AsyncTask
以获取List<LureImage>
每个 Lure 的。我编写的代码的问题是它并不总是List<LureImage>
从数据库中获取,结果是有时我的 RecyclerView 显示图像,有时它不显示。(我在下面显示我的意思的截图)
从我的 LureRepository 类中,我设法从数据库中获取 LiveData>,然后我希望每个 Lure 从数据库中获取它们对应的 Image 类。我设法使用这种方法做到了这一点。
android - ViewModelProvider.Factory 和 ViewModelProvider.NewInstanceFactory 有什么区别?
我目前正在将我的项目架构从 MVP 转换为 MVVM。当我研究它时,我发现有些事情让我感到困惑:
在ioschedScheduleViewModelFactory.kt
项目中,工厂实现了ViewModelProvider.Factory:
在DetailViewModelFactory.java
来自codelab的 Sunshine 项目中,工厂扩展了ViewModelProvider.NewInstanceFactory:
我想知道:
- ViewModelProvider.Factory和ViewModelProvider.NewInstanceFactory有什么区别?
- 为什么它们像上面提到的代码一样被使用?
- 使用它们的最佳实践/场景是什么?
android - 如果方法使用不重叠,2 Activity 是否应该有单独的 ViewModel?
我有1Activity
只显示和从. 我有另一个只添加和更新新项目。 Notes
RecyclerView
Activity
目前他们都使用同一个ViewModel
类:
我应该改为创建 2 个单独ViewModels
的,每个一个Activity
吗?
android - 带有 MVVM 架构组件的 StartActivityForResult
在其中一个 Google Codelabs 中,Activity1
显示一个RecyclerView
并单击按钮打开Activity2
,可以在其中添加新条目。
他们没有直接访问ViewModel
inActivity2
并将条目添加到数据库中,而是将条目发送回Activity1
并将其插入其中。
这背后的原因是什么?为什么要发回数据Activity1
?为什么不调用并ViewModelProviders.of(this)
在Activity2
其中插入条目?
android - 架构组件和 Intent Extras
intent extras
根据官方架构指南,将数据以一种形式从一个activity
传递到另一个(向前startActivity(ForResult)
或向后)是否仍然合法setResult
?
此外,是否可以views
使用接收到的数据进行填充(例如,editText.setText(intent.getStringExtra...)
使用 Android 系统在配置更改时处理的自动恢复?
是否应该将这些责任中的任何一个转发给ViewModel
以及如何转发?