如何将自定义项列表绑定到ListView或RecyclerView?仅使用Android DEFAULT DataBinding(无外部库)
<layout>
<data>
<import type="java.util.List"/>
<variable name="listOfString" type="List<String>"/>
</data>
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:?????="@{listOfString}/> <!--Like we have ItemsSource in WPF-->
</layout>
我来自WPF背景,其中有一个ItemTemplate选项。使用ItemTemplate,您可以纯粹通过XML将数据映射到视图。类似的东西:
<ListView ItemsSource="{Binding Path=UserCollection}">
<ListView.ItemTemplate>
<!--Populate template with each user data-->
<DataTemplate>
<WrapPanel>
<!--Bind to user.Name-->
<TextBlock Text="{Binding Name}" FontWeight="Bold" />
<TextBlock Text="{Binding Age}" FontWeight="Bold" />
<TextBlock Text="{Binding Mail}" />
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
答案 0 :(得分:2)
如果这可以帮助某人,在我看来,您正在寻找的是来自DataBinding功能的Binding adadpters。
更多信息可以在这里找到: documentation
这将允许您定义可在xml中使用的自定义属性,并传递所需项目的列表。
@BindingAdapter("nameOfProperty")
public static void loadImage(ListView listView, List listOfString) {
// do the actual logic here
}
然后可以在app:nameOfPropery="@{listOfString}"
之类的xml中使用
答案 1 :(得分:1)
查看此库:https://github.com/evant/binding-collection-adapter。
该库允许将自定义对象的ObservableList绑定到RecyclerView。