Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class RecordsAdapter extends RecyclerView.Adapter<RecordsAdapter.RecordsVH> {
- private RecordsClickListener listener;
- private List<Record> records;
- private LayoutInflater layoutInflater;
- public interface RecordsClickListener {
- void onRecordClicked(int pos, Record record);
- void removeFromFavourites(int pos, Record record);
- void addToFavourites(int pos, Record record);
- }
- public RecordsAdapter(Context context, RecordsClickListener listener) {
- layoutInflater = LayoutInflater.from(context);
- records = new ArrayList<>();
- this.listener = listener;
- }
- @Override
- public RecordsVH onCreateViewHolder(ViewGroup parent, int viewType) {
- View view = layoutInflater.inflate(R.layout.item_video, parent, false);
- return new RecordsVH(view, listener);
- }
- @Override
- public void onBindViewHolder(RecordsVH holder, int position) {
- Record record = records.get(position);
- holder.tvVideoName.setText(record.getTitle());
- holder.tvLink.setText(record.getLink());
- holder.cbFavourite.setChecked(record.isFavourite());
- }
- @Override
- public int getItemCount() {
- return records.size();
- }
- public void setRecords(List<Record> records) {
- this.records.clear();
- this.records.addAll(records);
- notifyDataSetChanged();
- }
- public void updateRecord(int pos, Record record) {
- records.remove(pos);
- records.add(pos, record);
- notifyItemChanged(pos, record);
- }
- public void removeRecord(int pos) {
- records.remove(pos);
- notifyItemRemoved(pos);
- }
- class RecordsVH extends RecyclerView.ViewHolder {
- @BindView(R.id.tvVideoName)
- TextView tvVideoName;
- @BindView(R.id.tvFramesCount)
- TextView tvLink;
- @BindView(R.id.cbFavourite)
- CheckBox cbFavourite;
- public RecordsVH(View itemView, final RecordsClickListener listener) {
- super(itemView);
- ButterKnife.bind(this, itemView);
- }
- @OnClick(R.id.llContainer)
- void onItemClicked() {
- listener.onRecordClicked(getAdapterPosition(), records.get(getAdapterPosition()));
- }
- @OnClick(R.id.cbFavourite)
- void onCheckBoxClicked() {
- Record record = records.get(getAdapterPosition());
- if (!record.isFavourite()) {
- listener.addToFavourites(getAdapterPosition(), record);
- } else {
- listener.removeFromFavourites(getAdapterPosition(), record);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment