出现“无法找到符号{layout}BindingImpl”错误通常是由于DataBinding生成的BindingImpl类无法正常引用导致的。解决方法如下:
android {
...
dataBinding {
enabled = true
}
}
标签开始和结束,如下所示:
public class MyAdapter extends RecyclerView.Adapter {
private List mDataList;
public MyAdapter(List dataList) {
mDataList = dataList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
ItemLayoutBinding binding = ItemLayoutBinding.inflate(inflater, parent, false);
return new ViewHolder(binding);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
MyData data = mDataList.get(position);
holder.bind(data);
}
@Override
public int getItemCount() {
return mDataList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private ItemLayoutBinding mBinding;
public ViewHolder(@NonNull ItemLayoutBinding binding) {
super(binding.getRoot());
mBinding = binding;
}
public void bind(MyData data) {
mBinding.setData(data);
mBinding.executePendingBindings();
}
}
}
请确保布局文件名称是item_layout.xml
,并且生成的Binding类名称为ItemLayoutBinding
。
通过以上步骤,您应该能够解决“无法找到符号{layout}BindingImpl”错误。