Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ca.ulaval.ima.tp3;
- import android.content.Context;
- import android.support.v7.widget.RecyclerView;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.TextView;
- import java.util.List;
- import ca.ulaval.ima.tp3.helper.AdapterOnClickListener;
- import ca.ulaval.ima.tp3.models.GenericModel;
- import ca.ulaval.ima.tp3.models.Marque;
- public class GenericListAdapter<T extends GenericModel> extends RecyclerView.Adapter<GenericListAdapter<T>.ViewHolder> {
- private List<T> mData;
- private LayoutInflater mInflater;
- private AdapterOnClickListener mClickListener;
- // data is passed into the constructor
- GenericListAdapter(Context context, List<T> data) {
- this.mInflater = LayoutInflater.from(context);
- this.mData = data;
- }
- public void setData(List<T> data) {
- mData = data;
- notifyDataSetChanged();
- }
- // inflates the row layout from xml when needed
- @Override
- public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- View view = mInflater.inflate(R.layout.fragment_list_marque_item, parent, false);
- return new ViewHolder(view);
- }
- // binds the data to the TextView in each row
- @Override
- public void onBindViewHolder(ViewHolder holder, int position) {
- if (! mData.isEmpty()) {
- String marque = mData.get(position).getDisplay();
- holder.myTextView.setText(marque);
- }
- }
- // total number of rows
- @Override
- public int getItemCount() {
- return mData.size();
- }
- // stores and recycles views as they are scrolled off screen
- public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
- TextView myTextView;
- ViewHolder(View itemView) {
- super(itemView);
- myTextView = itemView.findViewById(R.id.tvAnimalName);
- itemView.setOnClickListener(this);
- }
- @Override
- public void onClick(View view) {
- if (mClickListener != null)
- mClickListener.onClick(view, getAdapterPosition());
- }
- }
- // convenience method for getting data at click position
- T getItem(int id) {
- return mData.get(id);
- }
- // allows clicks events to be caught
- void setClickListener(AdapterOnClickListener itemClickListener) {
- this.mClickListener = (AdapterOnClickListener) itemClickListener;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement