Skip to content

Instantly share code, notes, and snippets.

@pgloaguen
Created August 28, 2015 15:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pgloaguen/df37f9f97102888aacbe to your computer and use it in GitHub Desktop.
Save pgloaguen/df37f9f97102888aacbe to your computer and use it in GitHub Desktop.
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import java.util.List;
public class SimpleDataBindingRecyclerAdapter<T> extends RecyclerView.Adapter<SimpleDataBindingRecyclerAdapter.DataBindingViewHolder> {
private final List<T> elements;
private final int itemLayout;
private final int br;
public SimpleDataBindingRecyclerAdapter(@NonNull List<T> elements, int itemLayout, int br) {
this.elements = elements;
this.itemLayout = itemLayout;
this.br = br;
}
@Override
public DataBindingViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new DataBindingViewHolder(DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), itemLayout, parent, false));
}
@Override
public void onBindViewHolder(DataBindingViewHolder holder, int position) {
holder.getViewDataBinding().setVariable(br, elements.get(position));
holder.getViewDataBinding().executePendingBindings();
}
@Override
public int getItemCount() {
return elements.size();
}
public static class DataBindingViewHolder extends RecyclerView.ViewHolder {
private final ViewDataBinding viewDataBinding;
public DataBindingViewHolder(ViewDataBinding viewDataBinding) {
super(viewDataBinding.getRoot());
this.viewDataBinding = viewDataBinding;
}
public ViewDataBinding getViewDataBinding() {
return viewDataBinding;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment