Android RecyclerView适配器中的数据绑定
示例
也可以在RecyclerView适配器中使用数据绑定。
资料模型
public class Item { private String name; public String getName() { return name; } }
XML布局
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{item.name}"/>
转接器类别
public class ListItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private Activity host; private List<Item> items; public ListItemAdapter(Activity activity, List<Item> items) { this.host= activity; this.items= items; } @Override publicRecyclerView.ViewHolderonCreateViewHolder(ViewGroup parent, int viewType) { //扩大布局并获取绑定 ListItemBinding binding = DataBindingUtil.inflate(host.getLayoutInflater(), R.layout.list_item, parent, false); return new ItemViewHolder(binding); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { Item item = items.get(position); ItemViewHolder itemViewHolder = (ItemViewHolder)holder; itemViewHolder.bindItem(item); } @Override public int getItemCount() { return items.size(); } private static class ItemViewHolder extendsRecyclerView.ViewHolder{ ListItemBinding binding; ItemViewHolder(ListItemBinding binding) { super(binding.getRoot()); this.binding= binding; } void bindItem(Item item) { binding.setItem(item); binding.executePendingBindings(); } } }