【问题标题】:DataBinding RecyclerView: Cannot find the setter for attribute 'app:items'DataBinding RecyclerView:找不到属性“app:items”的设置器
【发布时间】:2017-03-16 17:10:12
【问题描述】:

当我尝试出价 RecyclerView 时出现此错误

错误:(15, 22)android.support.v7.widget.RecyclerView 上找不到参数类型为android.databinding.ObservableArrayList<com.toong.databindingdemo.recycler.UserViewModel 的属性“app:items”的设置器。

这是我的代码:

<?xml version="1.0" encoding="utf-8"?>

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <data>
        <variable
            name="usersViewModel"
            type="com.toong.databindingdemo.recycler.UsersViewModel" />
    </data>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/activity_users_recycler"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:items="@{usersViewModel.users}"
        />
</layout>

但是在UsersViewModel我已经有一个公共用户数组

package com.toong.databindingdemo.recycler;

import android.databinding.BaseObservable;
import android.databinding.Bindable;
import android.databinding.ObservableArrayList;

public class UsersViewModel extends BaseObservable{
    @Bindable
    public ObservableArrayList<UserViewModel> users;

    public UsersViewModel()
    {
        this.users = new ObservableArrayList<>();
    }
}

我已经清理并重建了项目,但它仍然无法正常工作。我该如何解决这个错误?

【问题讨论】:

    标签: android data-binding android-databinding


    【解决方案1】:

    RecyclerView 中没有类似app:items 的属性。您需要为此创建自定义绑定方法

    @BindingAdapter("items")
    public static void entries(RecyclerView recyclerView, String[] array) {
        //write your code to set RecyclerView adapter.
    }
    

    array 的类型更改为您需要的数据类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 2019-06-29
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      相关资源
      最近更新 更多