package nglauber.android.databinding; import android.databinding.DataBindingUtil; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.List; import nglauber.android.databinding.databinding.ItemBookBinding; import nglauber.android.databinding.model.Book; /** * Created by nglauber on 4/14/16. */ public class BookAdapter extends RecyclerView.Adapter<BookAdapter.ViewHolder> { List<Book> mBooks; BookClickListener mListener; public BookAdapter(List<Book> books, BookClickListener listener) { mBooks = books; mListener = listener; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { ItemBookBinding binding = DataBindingUtil.inflate( LayoutInflater.from(parent.getContext()), R.layout.item_book, parent, false); final ViewHolder vh = new ViewHolder(binding); vh.itemView.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { if (mListener != null) { int pos = vh.getAdapterPosition(); Book book = mBooks.get(pos); mListener.onBookClick(book); } } }); return vh; } @Override public void onBindViewHolder(ViewHolder holder, int pos) { Book book = mBooks.get(pos); holder.binding.setBook(book); } @Override public int getItemCount() { return mBooks != null ? mBooks.size() : 0; } public static class ViewHolder extends RecyclerView.ViewHolder { ItemBookBinding binding; public ViewHolder(ItemBookBinding binding) { super(binding.getRoot()); this.binding = binding; } } }