我想创建一个可以在许多活动中使用的布局,所以我创建了一个像这样的类:
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<java.util.List<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
如何创建一个可以在众多活动中使用的布局?
1条答案
按热度按时间tcbh2hod1#
基本上,将MutableLiveData<List< Child>>()更改为
MutableLiveData<List< Parent>>()