我有一个简单的类
public class Contacts {
public ArrayList<Contact> items;
}
我有一个翻新get请求
LiveData<ApiResponse<Contacts>> getContacts();
这将返回LiveData<ApiResponse<Contacts>>,但我需要进一步将其用作项目列表LiveData<ApiResponse<List<Contact>>>
protected LiveData<ApiResponse
我突然发现以下错误
Exception from sub xGHk6PkFTQ9uv8ncg TypeError: Cannot call method 'find' of undefined
at null._handler (app/server/publications.js:6:22)
at maybeAuditArgumentChecks (packages/livedata/livedata_server.js:1349)
at _.extend._runHandler (packages/livedata/livedata_serv
我试过使用flattenLiveData(),但它怀疑kotlin.collections.ArrayList<LiveData<List<TabDefinition>>>,但我正在通过Collection<LiveData<List<TypeVariable(Source)>?>>
Type mismatch: inferred type is
kotlin.collections.ArrayList<LiveData<List<TabDefinition>>> /* =
java
目前,我正在对android中的实时数据和流进行一些实验。我无意中发现,在映射livedata值和流值时是否存在很大的性能差异,因为livedata映射是在主ui线程中执行的:
/**
* Returns a [LiveData] mapped from `this` LiveData by applying [transform] to each value set on
* `this` LiveData.
*
* This method is analogous to [io.reactivex.Observable.map].
*
* [transform] will be
我的代码有个奇怪的问题。
场景...I有一个数据列表,我在视图模型中检索这些数据并从片段中进行观察。当我第一次打开碎片的时候,一切都很好。但是当我从另一个片段返回时,LiveData不是空的。所以我就这样检查了,
if(liveData.getUser().getValue()!= null){
//here getName() does not null and I get the value from liveData
println(liveData.getUser().getName()) //this work
liveData.getUser().observ
中的协程LiveData示例给出了使用emit()的以下示例
val user: LiveData<User> = liveData {
val data = database.loadUser() // loadUser is a suspend function.
emit(data)
}
我见过的每个包含此的emit()示例都会在使用emit()时创建一个新的LiveData对象。如何从已创建的LiveData对象中获取LiveDataScope并为其添加emit()值?例如。
class MyViewModel : ViewModel() {
pri
当我们有如下所示的liveData时,我们不能使用_liveData.value++,因为value是可空的。
class MainViewModel(savedStateHandle: SavedStateHandle): ViewModel() {
private val _liveData: MutableLiveData<Int> =
savedStateHandle.getLiveData("SomeKey", 0)
val liveData: LiveData<Int> = _liveData
fu
这是我的伪代码。 class ViewModel {
val liveData1: MutableLiveData<String>
private set
val liveData2: MutableLiveData<String>
private set
fun start() {
liveData1.value = "render1"
liveData2.value = "render2"
/**
* I w
我正在尝试使用LiveData从RxJava2 Observable创建LiveDataReactiveStreams.fromPublisher对象。然而,当创建LiveData对象时(从我的ViewModel),当被观察时(从我的片段),它从不触发。
下面是一个基本的例子。为了进行比较,我已经包含了将这些数据从可观测到的数据获取到LiveData中的另一种方法(通过订阅可观测的数据)。
class MainFragmentViewModel : ViewModel() {
val liveData1: LiveData<List<Int>>
val
我有一个保存用户列表的LiveData对象,我正在尝试将数据传输到另一个LiveData对象,以便在其他地方使用。 我在房间中使用MVVM,所以我从数据库中获取LiveData,在ViewModel上,我尝试将LiveData中的User对象转换为Person对象,以便在UI中显示。 所以我有一个变量是LiveData<List<User>> class User(var firstName: String, var lastName: String, var age: Integer) 我正在尝试将其转换为LiveData<List<Person>
我使用Room处理本地数据库,使用LiveData处理DAO。
因此,我使用LiveData作为事务的线程处理程序。
问题是如何使用LiveData进行插入和更新?或者通常是,空函数如何返回房间中的LiveData?
@Query("select * from table")
fun getAll(): LiveData<List<T>>
@Insert
fun insert(T data): LiveData<?> // What should be the generic, since it's void?
在RxJava中,我们
我有一个ViewModel,如下所示,它同时具有LiveData和Compose状态
@Suppress("UNCHECKED_CAST")
class SafeMutableLiveData<T: Any>(value: T) : LiveData<T>(value) {
override fun getValue(): T = super.getValue() as T
public override fun setValue(value: T) = super.setValue(value)
public override
我在单元测试我的用例时遇到了问题。以下是用例代码- interface MyUseCase {
fun performCustomAction(action: MyAction): LiveData<Result>
}
class MyUseCaseImpl(private val dataRepository: DataRepository) : MyUseCase {
override fun performCustomAction(action: MyAction) = liveData {
em
考虑以下公开MutableLiveData的方法
方法A
class ThisViewModel : ViewModel() {
private val _someData = MutableLiveData(true)
val someData: LiveData<Boolean>
get() = _someData
}
// Decompiled Kotlin bytecode
public final class ThisViewModelDecompiled extends ViewModel {
private final M
我有参数T的数据包装类。这个类中有function,具有nullable类型的泛型容器: T?(例如LiveData< T?>)
class Wrapper<T> {
fun add (data: LiveData<T?>) {
// ...
}
}
在这个地方我真的需要这样的类型。当我尝试使用此方法并传递非空类型参数时:
class Program {
fun get() {
// some generic container, e.g. LiveData
val data: LiveData<Int
我在Android中使用Firebase实时数据库和LiveData和ViewModel,我想不断地更新查询。
下面是ViewModel类:
public class ViewModel_MainActivity extends ViewModel {
/*
LiveData with Database query for the Firebase node "Ratings"
*/
private static long currentTimeMillisRating = System.currentTimeMillis();
p
是否可以使用LiveData从Room中获取特定行?我的目标是从数据库中检索某些项,当每个项都被列(“页面”和“类别”)限定时。问题是,在LiveData观察者中,我总是收到相同的页面-- livedata对象从一开始就被启动了。如果以后在ViewModel中更改它,则没有任何效果:
private fun requestNextPageFromDB(page: Int) {
filmsListLiveData = interactor.getPageOfFilmsFromDB(page)
}
我在ViewModel的init块中创建了ViewModel对象:
var film
https://developer.android.com/topic/libraries/architecture/coroutines Android coroutines和liveData文档指出,如果我们想要在实时数据函数中执行异步操作,我们可以使用liveData构建器函数 val user: LiveData<User> = liveData {
val data = database.loadUser() // loadUser is a suspend function.
emit(data)
} val user: LiveData<Res