Android数据绑定:找不到属性app:list的setter

时间:2017-02-10 22:59:11

标签: android listview android-databinding

这是我的listView

<ListView
    android:id="@+id/productListView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:list="@{page.results}"/>

我收到此错误:

  

java.lang.RuntimeException:发现数据绑定错误。   **** /数据绑定错误****消息:在android.widget.ListView上找不到参数类型为java.util.List的属性'app:list'的setter。   当地时间:33:20 - 33:31   **** \数据绑定错误****

这是我的BindingAdapter

@BindingAdapter({"bind:list"})
public static void bindList(Context context, ListView view, ObservableArrayList<Result> list) {
    ProductsAdapter arrayAdapter = new ProductsAdapter(context,list);
    view.setAdapter(arrayAdapter);
}

有人可以帮助解决这个问题。

1 个答案:

答案 0 :(得分:3)

您应该退出 bind 命名空间。只有@BindingAdapter("list")就足够了。

此外,您不需要Context参数使用List<Result>代替ObservableArrayList<Result>

@BindingAdapter("list")
public static void bindList(ListView view, List<Result> list) {
    Context context = view.getContext();
    view.setAdapter(new ProductsAdapter(context, list));
}