Monday, 22 August 2016

How to Write a RecycleView Adapter , Android


package com.csm.android.bgsysmobileapp;

import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

import com.csm.android.bgsysmobileapp.util.TrainingSheduleListDataType;

import java.util.ArrayList;

/** * Created by sagar on 8/22/2016. */public class RecycleViewAdapterTrainingSheduleList extends RecyclerView.Adapter<RecycleViewAdapterTrainingSheduleList.TrainingSheduleViewHolder> {

    ArrayList<TrainingSheduleListDataType> arylistTrainingSheduleListDataType;

    public RecycleViewAdapterTrainingSheduleList(ArrayList<TrainingSheduleListDataType> arylistTrainingSheduleListDataType) {
        this.arylistTrainingSheduleListDataType = arylistTrainingSheduleListDataType;
    }

    public static class TrainingSheduleViewHolder extends RecyclerView.ViewHolder {
        CardView cv;
        TextView txtTitle;
        TextView txtTrainingCode;
        TextView txtBatchCode;
        TextView txtDistrictHeadQuarter;
        TextView txtFromDate;
        TextView txtToDate;
        TextView txtTime;
        Button btnAttandance;

        TrainingSheduleViewHolder(View itemView) {
            super(itemView);
            cv = (CardView) itemView.findViewById(R.id.cardview_singlelement_recyclerview_training_shedule);
            txtTitle = (TextView) itemView.findViewById(R.id.textview_title_training_shedule_single_item);
            txtTrainingCode = (TextView) itemView.findViewById(R.id.textview_training_code_value_training_shedule_single_item);
            txtBatchCode = (TextView) itemView.findViewById(R.id.textview_batch_code_value_training_shedule_single_item);
            txtDistrictHeadQuarter = (TextView) itemView.findViewById(R.id.textview_district_headquarter_name_training_shedule_single_item);
            txtFromDate = (TextView) itemView.findViewById(R.id.textview_from_date_training_shedule_single_item);
            txtToDate = (TextView) itemView.findViewById(R.id.textview_to_date_training_shedule_single_item);
            txtTime = (TextView) itemView.findViewById(R.id.textview_time_seperator_training_shedule_single_item);
            btnAttandance = (Button) itemView.findViewById(R.id.button_attandance_single_item_recycleview_training_shedule);
        }
    }

    @Override    public TrainingSheduleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.single_element_recycler_view_training_shedule, parent, false);
        TrainingSheduleViewHolder pvh = new TrainingSheduleViewHolder(v);
        return pvh;
    }

    @Override    public void onBindViewHolder(TrainingSheduleViewHolder holder, int position) {
        holder.txtTitle.setText(arylistTrainingSheduleListDataType.get(position).getStrTitle());
        holder.txtTrainingCode.setText(arylistTrainingSheduleListDataType.get(position).getStrTrainingCode());
        holder.txtBatchCode.setText(arylistTrainingSheduleListDataType.get(position).getStrBatchCode());
        holder.txtDistrictHeadQuarter.setText(arylistTrainingSheduleListDataType.get(position).getStrDistrictHeadQuarter());
        holder.txtFromDate.setText(arylistTrainingSheduleListDataType.get(position).getStrFromDate());
        holder.txtToDate.setText(arylistTrainingSheduleListDataType.get(position).getStrToDate());
        holder.txtTime.setText(arylistTrainingSheduleListDataType.get(position).getStrTime());
    }

    @Override    public int getItemCount() {
        return arylistTrainingSheduleListDataType.size();
    }

    @Override    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }
}