Advertisement
Guest User

ELLLLRITON

a guest
Mar 22nd, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. package ca.ulaval.ima.tp3;
  2.  
  3. import android.content.Context;
  4. import android.support.v7.widget.RecyclerView;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.TextView;
  9.  
  10. import java.util.List;
  11.  
  12. import ca.ulaval.ima.tp3.helper.AdapterOnClickListener;
  13. import ca.ulaval.ima.tp3.models.GenericModel;
  14. import ca.ulaval.ima.tp3.models.Marque;
  15.  
  16.  
  17. public class GenericListAdapter<T extends GenericModel> extends RecyclerView.Adapter<GenericListAdapter<T>.ViewHolder> {
  18. private List<T> mData;
  19. private LayoutInflater mInflater;
  20. private AdapterOnClickListener mClickListener;
  21.  
  22. // data is passed into the constructor
  23. GenericListAdapter(Context context, List<T> data) {
  24. this.mInflater = LayoutInflater.from(context);
  25. this.mData = data;
  26. }
  27.  
  28. public void setData(List<T> data) {
  29. mData = data;
  30. notifyDataSetChanged();
  31. }
  32.  
  33. // inflates the row layout from xml when needed
  34. @Override
  35. public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  36. View view = mInflater.inflate(R.layout.fragment_list_marque_item, parent, false);
  37. return new ViewHolder(view);
  38. }
  39.  
  40. // binds the data to the TextView in each row
  41. @Override
  42. public void onBindViewHolder(ViewHolder holder, int position) {
  43. if (! mData.isEmpty()) {
  44. String marque = mData.get(position).getDisplay();
  45. holder.myTextView.setText(marque);
  46. }
  47. }
  48.  
  49. // total number of rows
  50. @Override
  51. public int getItemCount() {
  52. return mData.size();
  53. }
  54.  
  55.  
  56. // stores and recycles views as they are scrolled off screen
  57. public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
  58. TextView myTextView;
  59.  
  60. ViewHolder(View itemView) {
  61. super(itemView);
  62. myTextView = itemView.findViewById(R.id.tvAnimalName);
  63. itemView.setOnClickListener(this);
  64. }
  65.  
  66. @Override
  67. public void onClick(View view) {
  68. if (mClickListener != null)
  69. mClickListener.onClick(view, getAdapterPosition());
  70. }
  71. }
  72.  
  73. // convenience method for getting data at click position
  74. T getItem(int id) {
  75. return mData.get(id);
  76. }
  77.  
  78. // allows clicks events to be caught
  79. void setClickListener(AdapterOnClickListener itemClickListener) {
  80. this.mClickListener = (AdapterOnClickListener) itemClickListener;
  81. }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement