android Kotlin中Parent类的数据绑定

b09cbbtk  于 2023-06-04  发布在  Android
关注(0)|答案(1)|浏览(171)

我想创建一个可以在许多活动中使用的布局,所以我创建了一个像这样的类:

open class Parent(var v1: String?,var v2:String?)
class Child(v1:String?,v2:String?, var v3:String?):Parent(v1,v2)

我创建一个布局:

<?xml version="1.0" encoding="utf-8"?>
<layout>
    <data>
        <variable
            name="data"
            type="androidx.lifecycle.LiveData&lt;java.util.List&lt;Parent>>" />
    </data>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/contentAreaColor"
        android:orientation="vertical">
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/rv_draw_date"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:items="@{data}"/>
    </LinearLayout>
</layout>

在活动1.我尝试设置下面的代码行。

viewModel.data = MutableLikeData<List<Child>>()
...
mBinding.data = viewModel.data <error here>

但编译器会探索错误消息:

>  Type mismatch: inferred type is LiveData<List<Child>> but
> LiveData<(Mutable)List<Parent!>!>? was expected

如何创建一个可以在众多活动中使用的布局?

tcbh2hod

tcbh2hod1#

基本上,将MutableLiveData<List< Child>>()更改为
MutableLiveData<List< Parent>>()

viewModel.data = MutableLiveData<List<Parent>>()

相关问题