问题标签 [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.

0 投票
1 回答
79 浏览

android - 使用架构组件构建的应用程序是否使其成为“MVVM”,如果是,应用程序的哪些部分与 MVVM 的哪一层相关?

我找不到任何直接回答这个问题的来源:

Android 架构组件是否遵循 MVVM 架构(如果实施得当)?如果是,应用程序的哪个部分(Activity/Fragment、ViewModel、存储库、数据库、Web 服务)与“模型”、“视图”和“视图模型”相关?ViewModel 类显然属于 ViewModel 层,但剩下的呢?

0 投票
1 回答
1832 浏览

android - 如何让这个 ViewModelFactory 更灵活并接受不同种类的 ViewModel 类?

我复制了一个带有 Android 架构组件、Retrofit、Dagger 和数据绑定的 MVVM 示例。我将此代码用作我的应用程序的起点,以便开始在 Android 应用程序开发中使用更好的架构。但是,请使用以下代码:

主要问题是它卡在PostListViewModel. 我想以一种动态的方式制作它,接受任何类型的[Name]ViewModel课程。我确实尝试了一些使用方法Class<T>,但我不再拥有代码。我也尝试过搜索,但没有得到好的结果。也许我没有搜索合适的术语。我很感激任何指导。

0 投票
1 回答
431 浏览

android - 如何解析 http 异常 401 上的成功正文响应?

即使服务器返回 401 HTTP 异常,我也试图解析实际的响应正文。

这就是我写的。当两者以通常的方式分开时,它可以很好地解析响应和错误。但是当我收到 401 HTTP 异常时,我想解析成功响应。

提前致谢..

401 HTTP 响应如下所示。

顺便说一句,我必须检查 HTTP 错误代码..

0 投票
1 回答
1890 浏览

android - Android MVVM:从广播接收器观察数据库变化

在我的应用程序中,我需要从 BroadcastReceiver 在我的数据库中添加/删除/更新数据。我想知道这方面的最佳做法是什么。由于在主线程上调用了 onReceive,因此我需要一种在工作线程上运行查询的方法,并且在完成时我需要 onReceive 方法中的响应。

为此,我使用了像这样的简单观察者模式。

我将侦听器传递给我在侦听器上调用 onDbUpdate() 方法的存储库,从而在接收器中获得响应。

如果它是一个活动/片段而不是一个广播接收器,我会简单地使用一个带有实时数据的视图模型作为可观察对象,在我的活动中,我会观察视图模型是否有这样的变化

我的方法可以吗,还是有明显更好的方法在 BroadcastReceiver 中实现这一点?谢谢!!

0 投票
1 回答
1282 浏览

dependency-injection - Dagger 2 多个存储库

所以我是 Dagger 2 依赖注入的新手。我创建了一个自定义 ViewModelFactory 类,它返回我的 ViewModel。

CustomViewModel接受 a在MyCatchesRepository构造函数中,然后创建MyCatchViewModel. 我怎么能改变这个类,以便我可以使用这个 ViewModelFactory 来创建具有不同构造函数参数(存储库)的不同 ViewModel

这是创建 CustomViewModelFactory 的模块

视图模型模块

0 投票
1 回答
162 浏览

android - Android Room - 关系和 LiveData

我有一个Lure类,其中包含一个ArrayListLureImage,如下面的代码所示。在我的存储库中,我进行数据库调用以获取LiveData<List<Lure>>,然后我执行一个AsyncTask以获取List<LureImage>每个 Lure 的。我编写的代码的问题是它并不总是List<LureImage>从数据库中获取,结果是有时我的 RecyclerView 显示图像,有时它不显示。(我在下面显示我的意思的截图)

从我的 LureRepository 类中,我设法从数据库中获取 LiveData>,然后我希望每个 Lure 从数据库中获取它们对应的 Image 类。我设法使用这种方法做到了这一点。

在这里我获取图像并在回收站视图中显示它们 这里没有检索图像 在此处输入图像描述

0 投票
2 回答
3375 浏览

android - ViewModelProvider.Factory 和 ViewModelProvider.NewInstanceFactory 有什么区别?

我目前正在将我的项目架构从 MVP 转换为 MVVM。当我研究它时,我发现有些事情让我感到困惑:

ioschedScheduleViewModelFactory.kt项目中,工厂实现了ViewModelProvider.Factory:

DetailViewModelFactory.java来自codelab的 Sunshine 项目中,工厂扩展了ViewModelProvider.NewInstanceFactory:

我想知道:

  1. ViewModelProvider.FactoryViewModelProvider.NewInstanceFactory有什么区别?
  2. 为什么它们像上面提到的代码一样被使用?
  3. 使用它们的最佳实践/场景是什么?
0 投票
1 回答
28 浏览

android - 如果方法使用不重叠,2 Activity 是否应该有单独的 ViewModel?

1Activity显示. 我有另一个添加更新项目。 NotesRecyclerViewActivity

目前他们都使用同一个ViewModel类:

我应该改为创建 2 个单独ViewModels的,每个一个Activity吗?

0 投票
1 回答
2517 浏览

android - 带有 MVVM 架构组件的 StartActivityForResult

在其中一个 Google Codelabs 中,Activity1显示一个RecyclerView并单击按钮打开Activity2,可以在其中添加新条目。

他们没有直接访问ViewModelinActivity2并将条目添加到数据库中,而是将条目发送回Activity1并将其插入其中。

这背后的原因是什么?为什么要发回数据Activity1?为什么不调用并ViewModelProviders.of(this)Activity2其中插入条目?

来源: https ://github.com/googlecodelabs/android-room-with-a-view/blob/master/app/src/main/java/com/example/android/roomwordssample/MainActivity.java

0 投票
0 回答
225 浏览

android - 架构组件和 Intent Extras

intent extras根据官方架构指南,将数据以一种形式从一个activity传递到另一个(向前startActivity(ForResult)或向后)是否仍然合法setResult

此外,是否可以views使用接收到的数据进行填充(例如,editText.setText(intent.getStringExtra...)使用 Android 系统在配置更改时处理的自动恢复?

是否应该将这些责任中的任何一个转发给ViewModel以及如何转发?