public void bind(DataType data) { this.data = data; binding.setVariable(BR.data, data); binding.executePendingBindings(); }
@SuppressWarnings("unchecked") @Override public void onBindViewHolder(final ViewHolder holder, final int position) { holder.binding.setVariable(BR.collection, list); holder.binding.setVariable(BR.key, getKey(position)); holder.binding.setVariable(BR.item, getItem(position)); holder.binding.executePendingBindings(); if (rowConfigurationHandler != null) { final E item = getItem(position); if (item != null) { rowConfigurationHandler.onConfigureRow(holder.binding, item, position); } } }
private View getView(final int position, @Nullable final View convertView) { ViewDataBinding binding = convertView != null ? DataBindingUtil.getBinding(convertView) : null; if (binding == null) { binding = DataBindingUtil.inflate(layoutInflater, layoutId, container, false); } Objects.requireNonNull(list, "Trying to get a view while list is still null"); binding.setVariable(BR.collection, list); binding.setVariable(BR.item, list.get(position)); binding.executePendingBindings(); return binding.getRoot(); }
@Override public View getView(int position, View convertView, ViewGroup parent) { ViewDataBinding dataBinding; LayoutInflater inflater = LayoutInflater.from(parent.getContext()); if (convertView == null) { dataBinding = DataBindingUtil.inflate(inflater, R.layout.item_lv, parent, false); } else { dataBinding = DataBindingUtil.getBinding(convertView); } dataBinding.setVariable(BR.lvusr, list.get(position)); return dataBinding.getRoot(); } }
@Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { if (holder instanceof MyViewHolder) { MyViewHolder holder1 = (MyViewHolder) holder; holder1.getBinding().setVariable(BR.rvusr, users.get(position)); holder1.getBinding().executePendingBindings(); } }
@BindingAdapter({"items", "layout"}) public static <E> void setItems(final LinearLayout view, @Nullable final Iterable<E> oldList, final int oldLayoutId, @Nullable final Iterable<E> newList, final int newLayoutId) { if (oldList == newList && oldLayoutId == newLayoutId) return; view.removeAllViews(); if (newList == null) return; final LayoutInflater layoutInflater = LayoutInflater.from(view.getContext()); for (final E item : newList) { final ViewDataBinding binding = DataBindingUtil.inflate(layoutInflater, newLayoutId, view, false); binding.setVariable(BR.collection, newList); binding.setVariable(BR.item, item); binding.executePendingBindings(); view.addView(binding.getRoot()); } }