Android数据绑定中ObservableList的绑定大小
如何在我的视图中绑定Android数据绑定中ObservableList的绑定大小,android,data-binding,kotlin,Android,Data Binding,Kotlin,如何在我的视图中绑定可观察列表的大小? 在我的android应用程序中,我正在使用带有可观察列表的数据绑定库,如下所示: // ViewModel class ViewModel { ... public final ObservableList<Item> items = new ObservableList<>() ... } <layout> <data> <variable name=
可观察列表的大小?
在我的android应用程序中,我正在使用带有可观察列表的数据绑定库,如下所示:
// ViewModel
class ViewModel {
...
public final ObservableList<Item> items = new ObservableList<>()
...
}
<layout>
<data>
<variable name="viewmodel" type="com.myapp.ViewModel" />
</data>
<TextView
...
android:text="@{String.valueOf(viewmodel.sizeOfList(viewmodel.items))}"
/>
</layout>
//视图模型
类视图模型{
...
公共最终可观察列表项=新的可观察列表()
...
}
我的看法呢
// View
<layout>
<data>
<variable name="viewmodel" type="com.myapp.ViewModel" />
</data>
<TextView
...
android:text="@{viewmodel.items.???}"
/>
</layout>
//查看
在视图TextView
中,我想显示项目列表的大小。我试图使用android:text=“viewmodel.items.size
或viewmodel.items.size()
,但这不起作用。我该怎么做?不正确
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="viewmodel" type="com.myapp.ViewModel "/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{viewmodel.items::size()}"/>
</LinearLayout>
</layout>
我想你只是忘了{::}。。。
这样做是因为ObservableList根据
根据
要引用您需要使用的方法,请执行以下操作:
**请在此更正答案,并在下面更清楚地说明**
如果不起作用,请在模型getListSize()中创建一个方法,并使用@{viewmodel::getListSize()}返回列表的大小!不正确
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="viewmodel" type="com.myapp.ViewModel "/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{viewmodel.items::size()}"/>
</LinearLayout>
</layout>
我想你只是忘了{::}。。。
这样做是因为ObservableList根据
根据
要引用您需要使用的方法,请执行以下操作:
**请在此更正答案,并在下面更清楚地说明**
如果不起作用…在模型getListSize()中创建一个方法,并使用@{viewmodel::getListSize()}返回列表的大小!在Dany Minassians的帮助下,我找到了以下两种解决方案:
直接size()方法
items.size()
的用法是有效的。问题是,它返回一个整数,因此必须将android:text
元素转换为字符串。这可以通过String.valueOf()
方法完成
<layout>
<data>
<variable name="viewmodel" type="com.myapp.ViewModel" />
</data>
<TextView
...
android:text="@{String.valueOf(viewmodel.items.size())}"
/>
</layout>
在Dany Minassian回答的帮助下,我找到了以下两种解决方案:
直接size()方法
items.size()
的用法是有效的。问题是,它返回一个整数,因此必须将android:text
元素转换为字符串。这可以通过String.valueOf()
方法完成
<layout>
<data>
<variable name="viewmodel" type="com.myapp.ViewModel" />
</data>
<TextView
...
android:text="@{String.valueOf(viewmodel.items.size())}"
/>
</layout>
感谢您的提示,但@{:}
不是anwer。用于在“onClick”等事件上执行的::binds方法。尽管如此,`{viewmodel.getListSize()}方法仍然有效(但必须使用“.”而不是“:”)。感谢您的提示,但@{:}
不是anwer。用于在“onClick”等事件上执行的::binds方法“。尽管如此,`@{viewmodel.getListSize()}方法仍然有效(但必须使用“.”而不是“:”)。