我正在学习一个关于LiveData/Room/体系结构的UDACITYs Android教程。
在将代码粘在一起之后,我遇到了(我认为是一个非常常见的问题)类型错配异常。
在课程示例中,使用一个成员视频创建了一个VideosRepository,该视频是一个LiveData:
class VideosRepository(private val database: VideosDatabase) {
/**
* A playlist of videos that can be shown on the screen.
*/
val videos: LiveData<List
我正在试着用LiveData来理解db房间。我在房间里跟踪谷歌的一个视频。在该项目中,他们具体说明:
在道中:
@Query("SELECT * FROM daily_sleep_quality_table ORDER BY nightId DESC")
fun getAllNights(): LiveData<List<SleepNight>>
在ViewModel中:
private val nights = database.getAllNights()
在viewModel中,它们直接调用getAllNights()。对于没有LiveData的其
今天我有一些关于android上的mvvm和数据绑定的问题,
我正在尝试绑定视图上的对象属性。
我有一个对象(Model),它有一些属性,例如:
public String name;
public String title;
public int value;
我有一个带有livedata的ViewModel,像这样:
MutableLiveData<Object> _obj = new MutableLiveData<>();
public LiveData<Object> obj = _obj;
最后,我有一个这样的观点:
<layout>
我正在尝试创建一个新的房间数据库查询,它接受一个参数并返回一个列表。我看到的所有文档和视频都只显示了DAO查询(我已经完成了),但我找不到的是如何为存储库和viewModel类创建后续查询。这是我的DAO查询;
@Query("SELECT * FROM member WHERE name = :reselectedPlayerName")
List<Member> getPlayersForReselection(String reselectedPlayerName);
我已经成功地创建了一个“Livedata”查询(用于另一个任务),该查询不接受任何参数,但这
我有个视频播放应用程序。我用片段实现了垂直Viewpager2。片段包含全屏系外播放器,我在其中加载视频,并有一个按钮来打开用户的配置文件谁已经张贴了视频。我将视图模型中的所有API调用作为
viewmodelScope.launch(Dispatchers.IO){
... //making api call and updating the livedata
...
}
我也在用
lifecycleScope.launch(Dispatchers.IO){
... //start caching the video
}
的问题是:当我像40 - 45+条目一样滚动并在Di
我有一个简单的类
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