DataBinding RecyclerView:无法找到属性'app:items'的setter

Pha*_*inh 5 data-binding android android-databinding

当我尝试招架时,我收到了这个错误 RecyclerView

错误:(15,22)找不到参数类型为android.databinding.ObservableArrayList<com.toong.databindingdemo.recycler.UserViewModelon的属性'app:items'的setter android.support.v7.widget.RecyclerView.

这是我的代码:

<?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>
Run Code Online (Sandbox Code Playgroud)

但在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<>();
    }
}
Run Code Online (Sandbox Code Playgroud)

我有清洁和重建项目,但它仍然无法正常工作.我该如何解决这个错误?

Rav*_*avi 7

有没有像财产app:itemsRecyclerView.您需要为此创建自定义Binding方法

@BindingAdapter({"bind:items"})
public static void entries(RecyclerView recyclerView, String[] array) {
    //write your code to set RecyclerView adapter.
}
Run Code Online (Sandbox Code Playgroud)

将类型更改array为所需的数据类型.