问题标签 [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 投票
2 回答
758 浏览

android - 为惰性委托使用自定义设置器

我有很多重复的代码,而且由于我对 Kotlin 还很陌生,所以我想学习并尝试尽可能多地利用它。我有许多延迟声明MutableLiveData<Int>的属性,在代码的某个地方,我正在检查每个属性,以确保实时数据的值永远不会低于 0。我认为使用 Kotlin 的委托会起作用,但我觉得我迷路了。

这是我的声明片段(默认值为 0)。

这是一些 onClickListeners 的片段。

我想做如下的事情:

但 Android Studio 给了我 2 个错误:

  1. 'val'-property 不能有 setter。这是有道理的,但是有没有办法保持count不可变,但是将 changeMutableLiveData<Int>的设置器更改为与我的尝试类似的东西?

  2. 委托属性不能具有非默认实现的访问器。我真的不知道这意味着什么,但我假设这是我实现我想要的东西的关键。

我该怎么做呢,还是我看错了?有没有更好的方法来做我想做的事?

0 投票
0 回答
120 浏览

android - Activity 中的奇怪行为 ViewModel 观察者调用方法 - MVVM 架构

对不起,如果我的英语不好

我是 mvvm 架构的新手。我使用 Room、Dagger 和 Reactive。在我的项目中,我创建了将“任务”插入数据库并从数据库中获取“任务”的示例。问题是当我保存“任务”时,观察者中从数据库获取“任务”的方法被触发,因此在 RecycleView 中将从数据库中添加相同的数据。但是在方法'constructSaveTask'中没有调用'getTask'

我使用两个 MutableLiveData,一个用于 getTask 和 saveTask

我不知道为什么。请帮我

任务道.kt

任务存储库.kt

基本响应.kt

任务视图模型.kt

数据库活动.kt

更新: 这里的适配器代码

任务适配器.kt

BaseAdapter.kt

0 投票
0 回答
3351 浏览

android - 是否可以将 MutableLiveData 与对象数组一起使用?

我正在处理的应用程序中有一个片段,用户需要填写 6 EditText。每对EditText代表用户地址的类型和描述(如“Apartment”为Type,“1201”为描述)。根据巴西邮政服务公司的说法,最多可以添加 3 个补码。

默认情况下,我显示一对EditText代表第一个补码。有一个按钮可以让用户再添加两个地址补码。

我想在我的 ViewModel 上使用LiveDataDataBinding更新一系列 Complements,但它不起作用,我不知道为什么。

是否可以使用数组和MutableLiveData

XML

视图模型

分段

0 投票
1 回答
866 浏览

android - 使用 Android 架构定期获取更新的 OkHttp 响应:LiveData 和更新地图标记

我制作了一个显示巴士位置的交通应用程序。我目前正在尝试重构我的代码,以便我可以平滑地为标记(公共汽车位置)设置动画,并且已经看到 LiveData 可以用于清理我的代码。我正在使用 OkHttp 发出我的请求,这是一个返回 BusInfo 类型的 mutableList 的存储库,然后从 busInfo 的可变列表创建标记。我真正的问题是我对 ViewModel 的第一次调用有效,但是当尝试创建 viewmodel 的新实例并获取更新的 daya 时,我从第一个存储库实例返回完全相同的数据,并且没有创建新实例. 关于如何定期获取新的可变总线信息列表有什么建议从我的视图模型中更新地图上的标记位置。有人可以帮我吗?总的来说,我对 Kotlin 和 Android Dev 还是很陌生。

我创建了一个视图模型,用于将 BusInfo 类型的可变列表返回到 OkHttp 请求成功响应的视图。

我添加了一个存储库类,用于从 http 请求获取数据并返回总线列表

0 投票
2 回答
1321 浏览

android - 为什么 LiveData 比 MutableLiveData 更好?

在许多样本中,我看到:

但更简单的看起来像这样:

那么,为什么需要这个包含 2 个字段的更复杂的代码构造呢?

0 投票
1 回答
252 浏览

android - 在数据绑定中使用 LiveData 而不是 MutableLiveData

嗨,我正在使用 LiveData 而不是 MutableLiveData,因为我从 Room 获取 LiveData 并且即使在删除binding.setLifecycleOwner(this);. 我的问题,这有什么问题吗?希望对其他人有所帮助

0 投票
4 回答
9065 浏览

android - 如何从 MutableLiveData 发出不同的值?

我观察到即使向其方法提供了相同的对象实例,也会MutableLiveData触发观察者。onChangedsetValue

setValue()如果向/提供相同或等效的实例,是否有办法避免两次通知观察者?postValue()

我尝试扩展MutableLiveData,但没有奏效。我可能在这里遗漏了一些东西

0 投票
5 回答
2853 浏览

android - 如何停止多次触发 LiveData 事件

我在我的应用程序中使用 MutableLiveData 进行基于事件的通信。我有单个活动两个片段架构。

在 ViewModel 的帮助下,我正在使用 Fragment-1 中的 LiveData 事件。但是,当我使用菜单栏将这个 Fragment-1 替换为 Fragment-2 并最终回到 Fragment-1 时,LiveData 的旧值再次被捕获。

如何避免这个问题?任何帮助/建议都非常感谢!谢谢你。

0 投票
0 回答
659 浏览

android - 如何检测android liveData状态?

首先,我是 LiveData 的新手。我从android官方网站上找到了这个。

这种行为的一个例外是观察者在从非活动状态变为活动状态时也会收到更新。此外,如果观察者第二次从非活动状态变为活动状态,则仅当自上次激活后值已更改时,它才会收到更新。

我想知道如何检测状态。

这是我的代码。如果用户第一次登录失败并尝试再次登录,则该时间onChanged方法调用没有数据更改。那个时候吐司又出现了。一段时间后,当网络调用完成时,再次onChanged调用方法。

0 投票
1 回答
3574 浏览

android - Android体系结构组件(LiveData):如何在更新文本视图后清除LiveData中的所有值

假设我创建了 mutableLivedata 变量(一个观察者),并通过它更新了一个 textview,现在我想清除 livedata 一旦它更新 textview 发送的值,就像我刚刚创建 Livedata 变量并且它在初始阶段是新鲜的一样,它没有价值. 我怎样才能做到这一点?

谢谢