kotlin中父类的绑定



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

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>

在activity1。

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

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

基本上,改变mutableelvedata

MutableLiveData在()

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

最新更新