После использования привязки данных появляется ошибка при запуске приложения - PullRequest
0 голосов
/ 04 октября 2018

Это ошибка, которую я получаю,

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.

android.databinding.tool.util.LoggedErrorException: Обнаружены ошибки привязки данных.**** / ошибка привязки данных **** msg: не удалось найти аксессорlayout \ custom_online_retailer_item.xml loc: 33: 36 - 33:63 **** \ ошибка привязки данных ****

Здесь находится класс адаптера продавца

    public class OnlineRetailersAdapter extends RecyclerView.Adapter<OnlineRetailersAdapter.OnlineRetailesViewHolder>
{
    private Context context;
    private List<OnlineRetailersModel> retailersModelList;

    public OnlineRetailersAdapter(Context context, List<OnlineRetailersModel> retailersModelList) {
        this.context = context;
        this.retailersModelList = retailersModelList;
    }


    @Override
    public OnlineRetailesViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
    {
        CustomOnlineRetailerItemBinding customOnlineRetailerItemBinding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.custom_online_retailer_item, parent, false);
        return new OnlineRetailesViewHolder(customOnlineRetailerItemBinding);
    }

    @Override
    public void onBindViewHolder(OnlineRetailesViewHolder holder, int position) {
        holder.bindOnlineRetailers(retailersModelList.get(position));
    }

    @Override
    public int getItemCount() {
        return 0;
    }

    static class OnlineRetailesViewHolder extends RecyclerView.ViewHolder
    {
        private CustomOnlineRetailerItemBinding customOnlineRetailerItemBinding;
        OnlineRetailesViewHolder(CustomOnlineRetailerItemBinding customOnlineRetailerItemBinding)
        {
            super(customOnlineRetailerItemBinding.retailerCard);
            this.customOnlineRetailerItemBinding = customOnlineRetailerItemBinding;
        }

        void bindOnlineRetailers(OnlineRetailersModel OnlineRetailersModel)
        {
            if (customOnlineRetailerItemBinding.getOnlineRetalersItemModel() == null) {
                customOnlineRetailerItemBinding.setOnlineRetalersItemModel(new OnlineRetailersViewModel(OnlineRetailersModel, itemView.getContext()));
            } else {
                customOnlineRetailerItemBinding.getOnlineRetalersItemModel().setRetailers(OnlineRetailersModel);
            }
        }
    }
}

ЗдесьЭто OnlineRetailerViewModel class

public class OnlineRetailersViewModel extends BaseObservable
{
    Context context;
    String name, url, description;

    public OnlineRetailersViewModel(OnlineRetailersModel onlineRetailersModel, Context context)
    {
        this.name = onlineRetailersModel.getName();
        this.url = onlineRetailersModel.getUrl();
        this.description = onlineRetailersModel.getDescription();
        this.context = context;
    }

    public void setRetailers(OnlineRetailersModel onlineRetailersModel) {
        this.name = onlineRetailersModel.getName();
        this.url = onlineRetailersModel.getUrl();
        this.description = onlineRetailersModel.getDescription();
        notifyChange();
    }

}

А вот custom_online_retailer_item xml

<?xml version="1.0" encoding="utf-8"?>
<layout>
    <data>
        <variable
            name="onlineRetalersItemModel"
            type="com.rk.mymvvmdemo.viewmodel.OnlineRetailersViewModel"/>
    </data>
    <android.support.v7.widget.CardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/retailer_card"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        app:cardUseCompatPadding="true"
        app:cardCornerRadius="5dp">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <ImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_margin="10dp"
                android:id="@+id/retailer_image"
                android:src="@mipmap/ic_launcher"/>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="10dp"
                android:orientation="vertical">
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="@{onlineRetalersItemModel.name}"
                    android:textColor="@color/primaryTextColor"
                    android:id="@+id/retailer_name" />
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:autoLink="web"
                    android:text="@{onlineRetalersItemModel.url}"
                    android:id="@+id/retailer_url"/>
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="@{onlineRetalersItemModel.description}"
                    android:id="@+id/retailer_description"/>
            </LinearLayout>
        </LinearLayout>
    </android.support.v7.widget.CardView>
</layout>

Любой может помочь, если я делаю ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...