【问题标题】:Android data binding : Cannot find setter for attribute app:listAndroid 数据绑定:找不到属性 app:list 的设置器
【发布时间】:2017-06-29 10:19:41
【问题描述】:

这是我的列表视图

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

我收到此错误:

java.lang.RuntimeException:发现数据绑定错误。 ****/ 数据绑定错误 ****msg:在 android.widget.ListView 上找不到参数类型为 java.util.List 的属性“app:list”的设置器。 地点: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);
}

有人可以帮忙解决这个问题吗?

【问题讨论】:

    标签: android listview android-databinding


    【解决方案1】:

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

    另外你不需要Context参数应该使用List&lt;Result&gt;而不是ObservableArrayList&lt;Result&gt;

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

    【讨论】:

    • 我尝试了你的建议。它仍然给出同样的错误。
    • 您可能需要使用List 而不是ObservableArrayList
    猜你喜欢
    • 2016-03-05
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多