使用DataBinding后,编译提示找不到BR类
土豆片子 2017-01-09 05:24:15 在apapter中使用了DataBinding,编写的时候没有提示异常,但在运行时提示找不到BR类。
在build.gradle文件中有
dataBinding{
enabled true
}
Adapter中:
import com.tool.room.BR;
@Override
public ConsumeListAdapter.MyViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
ViewDataBinding dataBinding = DataBindingUtil.inflate(LayoutInflater.from(viewGroup.getContext()),
R.layout.detail_consume_list_item,viewGroup,false);
MyViewHolder myViewHolder = new MyViewHolder(dataBinding.getRoot());
myViewHolder.setDataBinding(dataBinding);
return myViewHolder;
}
@Override
public void onBindViewHolder(ConsumeListAdapter.MyViewHolder myViewHolder, int i) {
ConsumeBean bean = mList.get(i);
myViewHolder.getDataBinding().setVariable(BR.bean,bean);
myViewHolder.getDataBinding().executePendingBindings();
}
Xml中
<?xml version="1.0" encoding="utf-8"?>
<layout>
<data>
<variable
name="bean"
type="com.tool.room.bean.ConsumeBean"/>
<import type="com.tool.room.utils.DataBindingUtil"/>
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@{bean.time}"
android:textColor="@color/context_text_color"
android:textSize="@dimen/sp_13"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@{DataBindingUtil.getConsumeTypeById(bean.type)}"
android:textColor="@color/context_text_color"
android:textSize="@dimen/sp_13"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@{bean.money}"
android:textColor="@color/context_text_color"
android:textSize="@dimen/sp_13"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="@{bean.remark}"
android:textColor="@color/context_text_color"
android:textSize="@dimen/sp_13"/>
</LinearLayout>
</layout>