问题标签 [mutablelivedata]

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 回答
735 浏览

android - 找不到属性“android:text”的设置器

我有:

使用activity.java:

和我的视图模型:

我收到以下错误:

msg:在 android.widget.TextView 上找不到参数类型为 android.arch.lifecycle.MutableLiveData 的属性“android:text”的设置器。

怎么了?

0 投票
1 回答
1820 浏览

android-room - 从 ViewModel 和 Repository 向 Android Room Dao SQL Query 传递多个过滤器

我正在使用以下内容将数据库行获取到我的适配器,但是我想使用“LIKE”和/或“WHERE”以及基本上所有 sql 查询过滤器类型从多重过滤的单个查询中返回行,我可以通过一个过滤器MutableLiveData<String>();

最终结果就像...

如下所示,目前方式只能通过一个过滤器变量。

视图模型类

存储库类

道接口

我尝试过传递基本的 var 字符串但没有运气,似乎只有MutableLiveData通过ViewModel&将变量传递给 Dao 的方法Repository

0 投票
4 回答
7966 浏览

android - 即使在 postValue() Kotlin 之后 MutableLiveData ArrayList 也是空的

我现在卡住了,目前想知道为什么我的可变数组列表返回 null,即使它正在使用 postvalue() 进行更新。我尝试使用 Toast 显示它,它显示 [] 我认为它是空的。它之间没有空间,所以看起来像一个盒子。为了显示文本,我也做了 toString() 。我将如何解决这个问题?

这是我的主要活动:

视图模型:

分段:

顶部区域:

底部区域:

0 投票
1 回答
80 浏览

android - 如何设置 LiveData> 到 MutableLiveData>?

我正在Android中开发,并尝试LiveData<List<customType>>通过以下功能获得。

我创建了一个如下参数:

如何设置getDataList()customLiveData

提前致谢。

0 投票
4 回答
2773 浏览

android - 如何在三个不同的片段上观察来自实时数据 android 的数据

我有我的活动MainActivity.kt

还有一个 ViewModelMainActivityViewModel.kt

我想观察我的 3 个不同片段的实时数据。

但是我的观察者只处理活动而不是片段。

0 投票
2 回答
3326 浏览

android - 具有来自 LiveData 的初始值的 MutableLiveData

我有一种情况,我有一个页面的视图模型,该页面基于一些输入数据(id)呈现,其中的字段是从我的存储库初始化但可以由用户编辑。

我的存储库功能非常简单:

我希望我的视图模型可以重新用于不同的帐户,所以我有一个LiveData<Long>将使用帐户 ID 进行设置的模型。

在我的视图模型中,我想公开一个name绑定到EditText视图的可变字段。该字段应由存储库中的数据初始化。如果我使用简单的不可编辑绑定,我可以让单向数据绑定工作:

但是,我无法使用它绑定@={viewModel.name}它,因为它抱怨它不知道如何设置值。我尝试编写一个辅助类,这样使用底层MediatorLiveData来设置值,但看起来我的 onChanged 回调从未被调用:

我更新了视图模型如下:

但是,当我这样做时,我的EditText字段永远不会设置数据库中的值,这是有道理的,因为onChanged回调永远不会在我MediatorLiveData的 in 中调用MutableLiveDataWithInitialValue

这似乎是一个很常见的用例,所以我想知道我在搞砸什么?

0 投票
2 回答
595 浏览

android - Android - LiveData 未更新

在我的片段中,我观察到 dbQuestionsList 字段:

在我的片段中,我有几个按钮,根据按下哪个按钮,我调用 viewModel 上的方法,将设置为标签的字符串传递给按钮。

我的视图模式:

存储方法:

道法:

当我按下按钮时,viewModel 方法会被调用,参数应该用于通过搜索房间数据库来更新 LiveData,但没有任何原因会更新。数据库不为空,因此没有理由返回 null 并且不触发主片段中的观察者。但是当我在我的 viewModel 中这样做时:

在我硬编码参数的地方,房间将返回列表并且片段中的观察者将被触发,所以它就像那样工作,但是当按下按钮时传递参数时不起作用,请解释一下,因为这件事没有意义。我尝试使用可变的实时数据,使用 .setValue 和 .postValue 但没有任何效果。

0 投票
1 回答
2104 浏览

android - 可变实时数据值在创建片段时更新

我已经用视图模型装配了一个简单的登录片段。这是片段:

这是我的视图模型:

当尝试登录失败时,这会起作用并注册对字符串状态的更改,但是它还会在加载片段时提交 onChange() ,导致在创建片段时它们实际输入任何内容之前,快餐栏出现在 UI 中。如何在不触发 onChange() 的情况下初始化视图状态?

0 投票
1 回答
3669 浏览

android - 无法从 Fragment 中的 ViewModel 观察 LiveData

我有一个RecyclerView在我ViewPager的一个Fragment。该RecyclerView节目的数据是从服务器获取的。它通常可以工作,但我无法使用ViewModeland实现相同的功能LiveData,因为livedata.observelivedataViewModel.

这是我的MonthlyOrderViewModel.java类的源代码

DefaultScheduler是一个Scheduler默认处理AsyncScheduler. 这是我的Scheduler.kt类的源代码

最后,我正在尝试使用以下方法观察我的片段onCreateView方法的变化:

我尝试调试它,发现改造后获取数据没有问题。但是observe当我尝试在我的片段中使用它们时,该方法永远不会被调用。

请建议我如何解决这个问题?任何帮助,将不胜感激。

0 投票
2 回答
58 浏览

android - 调用 MutableLiveData 网络服务 agine 来更新列表

我在我的项目中使用 MVVM 结构。正如您在代码中看到的那样,我有一个带有列表的主要片段观察了一个 Web 服务

片段:

查看模型:

主页存储库:

我想添加 SwipeRefreshLayout 来更新主列表。再次调用 Web 服务并更新列表的正确方法是什么?谁能帮我?