问题标签 [android-viewmodel]
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 - 具有自定义类型转换器实时数据的 Android 房间连续触发
连续添加类型转换器实时数据触发器后
这是我的 JobImages 实体
这是我的 DAO
AddOnService 类
转换器类
这个数据库类
我没有收到任何编译时错误,但是在添加类型转换器后进入屏幕时 Livedata 连续触发有什么问题吗?
android - Android 架构组件 ViewModel - 如何在测试 Activity 上模拟 ViewModel?
我正在尝试设置类似于GithubBrowserSample的 UI 测试,看起来示例项目只有模拟但没有ViewModel
.Fragment
Activity
这是我试图Activity
通过 mocking测试的代码ViewModel
。但是ViewModel
之前没有onCreate()
在 Activity 中设置。
有人可以帮我解决这个问题吗?
android - 对象字段更改的 LiveData 更新
我正在使用带有 LiveData 的 Android MVVM 架构。我有一个像这样的对象
我的视图模型看起来像这样
如何确保用户对象中的某些字段更改观察者得到通知?顺便说一句,将这些数据保存在单独的对象中并且不要在我的 ViewModel 中使用诸如字符串之类的主要值对我来说很重要。
android - CompoundView 中的 ViewModel 引用(自定义视图)
我正在MVVM
使用Android Architecture Components
和Data Binding
图书馆关注体系结构。
TL;博士
ViewModel
在复合视图中引用对象是否违反 MVVM 架构?我查看了 Google 的示例,只看到它在 Activity/Fragment XML 中使用,但没有在自定义视图中使用。
有问题的代码
我有一个复合视图,我想在许多地方重复使用。它从 XML 实例化。此视图从用户输入中填充。我想确保用户输入的任何内容都能在方向更改后幸存下来。请考虑以下我匆忙编写的代码来说明场景:
查看型号:
餐厅选择视图:
android - 发布或设置 MutableLiveData - 未调用观察者 onChanged
我发现了新的 android 架构组件,我想通过一个小型测试应用程序测试这对 ViewModel / LiveData。后者有两个片段(在 a 中ViewPager
),第一个创建/更新卡片列表(通过 an EditText
),第二个显示所有卡片。
我的视图模型:
我的第二个片段:
HashMap
像我的一样MutableLiveData
,更新得很好,但我的第二个片段没有通过观察者接收信息。
java - ViewModel 如何在配置更改时保持不变
查看ViewModel文档,它说:
换句话说,这意味着如果 ViewModel 的所有者因配置更改(例如旋转)而被销毁,则不会销毁 ViewModel。所有者的新实例将重新连接到现有的 ViewModel。
如果引用它的活动被破坏,ViewModel 是如何不被破坏的?一旦我们创建了一个新的活动,它是如何重新连接的?
android - 将 ViewModel 绑定到服务是否正确?
我已经开始在我的应用程序中使用架构组件,我仍在学习如何使用它。
在我的应用程序中,我有一个 Activity 按顺序显示不同的片段。在其中一些中,我需要与后台服务通信,以便从外部 BLE 传感器接收数据。由于我需要在多个 Fragment 中与服务交互,我想知道 ViewModel 是否是进行绑定的正确位置。我环顾四周,但没有找到答案。
在 ViewModel 中绑定服务是否有任何问题?
java - 将数据从 ViewModel 的 AsyncTask 传递到 Calling Activity
我正在使用 Room 将项目添加到我的数据库中。
我从 AddFriendActivity 中的用户那里获得了项目的详细信息,它调用 AddFriendViewModel 的addItem (),然后调用子类 AddAsyncTask。
该项目被插入,我在 AsyncTask 的doInBackground()或OnPostExecute()中获得了 ID。现在我需要在我的 AddFriendActivity 中传递或获取这个 id。
我的活动:
我的 ViewModel 类与子类 AddAsyncTask:
android - 观察从 ArrayList 中添加和删除事件
在我的应用程序中,我正在尝试使用 Android 架构库来实现 MVVM 设计模式。为此,我创建了一个ViewModel
包含一些LiveData
对象的类。
在我的 UI 中,用户可以添加和删除笔记。为此,我认为在我的中创建添加和删除方法NotesViewModel
并直接在 ArrayList 上操作就足够了,如下所示:
我对这个解决方案的问题是我无法获得用户删除或添加的特定注释;只有整个列表。那么我该怎么做呢?我是否必须为LiveData
用户可以执行的每个事件创建一个对象?还是有更好的方法来做到这一点?
android - 我应该在 ViewModel 中包含 LifecycleOwner 吗?
我目前需要 LifecycleOwner 才能创建观察者。
我有在 ViewModel 中创建 Observer 的代码,因此我在 Fragment 中检索 ViewModel 时附加了 LifecycleOwner。
根据谷歌的文档。
注意:ViewModel 绝不能引用视图、生命周期或任何可能持有对活动上下文的引用的类。
我是否打破了该警告,如果我打破了,您建议我以什么方式移动我创建的观察者以进行数据返回?
我只做了一个观察者,所以我想知道它是否仍然有效。因为也在谷歌的文档中也说过。
ViewModel 对象可以包含 LifecycleObservers,例如 LiveData 对象。
主要片段
主视图模型
更新 1:改进了 ViewModel,感谢 @pskink 建议使用转换。