Create Base Adapters For All Recycler View Adapters

    import android.app.Activity;
    import android.content.Context;
    import android.support.annotation.NonNull;
    import android.support.v7.widget.RecyclerView;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;

    import java.util.ArrayList;
    import java.util.List;

    public abstract class BaseAdapter extends RecyclerView.Adapter<BaseAdapter.MyViewHolder> {

        public int layout_id;
        protected List<?> dataList = new ArrayList<>();
        Context BASE_CONTEXT;
        public View itemview;

        public BaseAdapter(Context context) {
            this.BASE_CONTEXT = context;
        }

        @NonNull
        @Override
        public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
            View view = LayoutInflater.from(viewGroup.getContext()).inflate(layout_id, viewGroup, false);
            return new MyViewHolder(view);
        }

        @Override
        public void onBindViewHolder(@NonNull MyViewHolder viewHolder, int position) {
            onBindViewHold(position, dataList.get(position));
        }

        public abstract View getView(View view);

        @Override
        public int getItemCount() {
            return dataList.size() == 0 ? 0 : dataList.size();
        }


        public abstract void onBindViewHold(int position, Object itemView);

        class MyViewHolder extends RecyclerView.ViewHolder {


            public MyViewHolder(@NonNull View itemView) {
                super(itemView);
                itemview = itemView;
                getView(itemView);
            }

        }

        public <T extends View> T bind(int id) {
            return itemview.findViewById(id);
        }


    }

public class Adapter extends BaseAdapter {

    TextView tv;

    Adapter(Context context, ArrayList<String> arrayList){
      super(context);
      dataList=arrayList;
      layout_id=R.layout.content_main2;

    }


    @Override
    public View getView(View view) {
        tv = bind(R.id.tv);
        return view;
    }

    @Override
    public void onBindViewHold( final int position, Object itemView) {

        String text=(String) itemView;
        Log.e("tv",tv.toString());
        tv.setText(text);
        tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(BASE_CONTEXT, ""+position, Toast.LENGTH_SHORT).show();
            }
        });
    }




}

You can refer this sample adapter class and edit it as per your requirement:

public class absadapter extends RecyclerView.Adapter<absadapter.exViewHolder> {

List<abs.Ex> exList;
Context context;




absadapter(List exList) {
    this.exList= exList;

}
public static class exViewHolder extends RecyclerView.ViewHolder{
    CardView cardView;
    TextView exname;
    ImageView exlogo;


    exViewHolder(View itemView){
        super(itemView);
        cardView= itemView.findViewById(R.id.cardView);
        exname= itemView.findViewById(R.id.ex_name);
        exlogo=itemView.findViewById(R.id.exlogo);



    }


}
@Override
public absadapter.exViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
    View viewthigh= LayoutInflater.from(parent.getContext()).inflate(R.layout.custom_abslayout,parent,false);
    absadapter.exViewHolder evh=new absadapter.exViewHolder(viewthigh);
    return evh;


}


@Override
public void onBindViewHolder(final absadapter.exViewHolder holder, final int position){
    holder.exname.setText(exList.get(position).name);
    holder.exlogo.setImageResource(exList.get(position).logoId);
    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (position == 0 ){
                v.getContext().startActivity(new Intent(v.getContext(), abdetails.class));

            }
            if (position == 1) {
                v.getContext().startActivity(new Intent(v.getContext(), declinecrunch.class));


            }
            if (position == 2) {
                v.getContext().startActivity(new Intent(v.getContext(), dumsidebend.class));


            }
        }
    });


}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView){
    super.onAttachedToRecyclerView(recyclerView);
}
@Override
public int getItemCount() {
    return  exList.size();
}

Refer this for Main Class:

public class abs extends AppCompatActivity {


RecyclerView recyclerView;
Context context;
private List<Ex> exlist;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_abs);

    recyclerView= findViewById(R.id.recyclerView);
    recyclerView.setHasFixedSize(true);
    LinearLayoutManager layoutManager=new LinearLayoutManager(context);
    recyclerView.setLayoutManager(layoutManager);

    initializeData();
    initializeAdapter();


}


private void initializeData(){

    exlist=new ArrayList<>();
    exlist.add(new abs.Ex("Crunches",R.drawable.crunchesgif));
    exlist.add(new abs.Ex("Decline Crunch",R.drawable.declinecrunch));
    exlist.add(new abs.Ex("Dumbell Side Bends",R.drawable.dumbbellsidebend));
    exlist.add(new abs.Ex("Hanging Leg Raises",R.drawable.hanginglegraises));
    exlist.add(new abs.Ex("Incline Leg Raises",R.drawable.inclinelegraises));
    exlist.add(new abs.Ex("Kneeling Cable Crunch",R.drawable.cablecrunch));
    exlist.add(new abs.Ex("Legs Raises",R.drawable.legraises));
    exlist.add(new abs.Ex("Flat Bench Lying Leg Raises",R.drawable.flatbenchlyinglegraise));
    exlist.add(new abs.Ex("Seated Jack Knife",R.drawable.seatedjackknife));
    exlist.add(new abs.Ex("Twisting Hip Raise",R.drawable.twistinghipraise));
    exlist.add(new abs.Ex("Weighted Crunch",R.drawable.weightedcrunch));
    exlist.add(new abs.Ex("Plank",R.drawable.plank));
    exlist.add(new abs.Ex("Side Plank",R.drawable.sideplank));
    exlist.add(new abs.Ex("Superman",R.drawable.superman));
    exlist.add(new abs.Ex("Twist Crunch",R.drawable.twistcrunch));


}
public void initializeAdapter(){
    absadapter rvadapter=new absadapter(exlist);
    recyclerView.setAdapter(rvadapter);
}
class Ex{
    String name;
    int logoId;

    Ex(String name,int logoId){
        this.name=name;
        this.logoId=logoId;
    }

}

This is extend version of rupali answer, i found recycle issue on recycle-view viewholder while scrolling on items. so if needed you can use below one,

import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;
import java.util.List;


public abstract class BaseRecyclerViewAdapter extends RecyclerView.Adapter<BaseRecyclerViewAdapter.BaseViewHolder> {

    public int layout_id;
    protected List<?> dataList = new ArrayList<>();
    protected BaseActivity Context;



    public BaseRecyclerViewAdapter(BaseActivity context) {
        this.Context = context;
    }

       @NonNull
    @Override
    public BaseViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(layout_id, viewGroup, false);
        return new BaseViewHolder(view);
    }


    @Override
    public void onBindViewHolder(@NonNull BaseViewHolder viewHolder, int position) {
        onViewHolderBind(viewHolder,position, dataList.get(position));
    }

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

    public abstract void onViewHolderBind(BaseViewHolder viewHolder, int position, Object data);

   public class BaseViewHolder extends RecyclerView.ViewHolder {
        public BaseViewHolder(@NonNull View itemView) {
            super(itemView);
        }
    }
}

Uses

public class LicenseListAdapter extends BaseRecyclerViewAdapter {


    public LicenseListAdapter(BaseActivity appLicensePlanActivity, List<LicenseRatePlanResponse> licenseRatePlanResponseData) {
        super(appLicensePlanActivity);
        dataList = licenseRatePlanResponseData;
        layout_id = R.layout.item_list_license_plan;
    }


    @Override
    public void onViewHolderBind(BaseViewHolder viewHolder, int position, Object data) {
        Button btnBuyButtonOfLicencePlaneILLP;
        TextView lblAmountOfLicencePlaneILLP, lblDayOfLicencePlaneILLP;

        lblAmountOfLicencePlaneILLP = viewHolder.itemView.findViewById(R.id.lblAmountOfLicencePlaneILLP);
        lblDayOfLicencePlaneILLP = viewHolder.itemView.findViewById(R.id.lblDayOfLicencePlaneILLP);
        btnBuyButtonOfLicencePlaneILLP = viewHolder.itemView.findViewById(R.id.btnBuyButtonOfLicencePlaneILLP);

        final LicenseRatePlanResponse tempLicensePlan = (LicenseRatePlanResponse) data;

        lblAmountOfLicencePlaneILLP.setText(KSUtility.GetFloatWithOutPrecesion(tempLicensePlan.getAmount()).toString() +" only");
        lblDayOfLicencePlaneILLP.setText(tempLicensePlan.getValidityDays().toString() +" days");
        btnBuyButtonOfLicencePlaneILLP.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                PaymentHelper.OpenPaymentDialog(Context, TransactionType.LicenseRenew, tempLicensePlan.getAmount(),tempLicensePlan.getLicenseRatePlanId());
            }
        });
    }
}