Guest User

Untitled

a guest
Nov 18th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.38 KB | None | 0 0
  1. public class MultipleTypesAdapter extends RecyclerView.Adapter {
  2.  
  3. private List<RowType> dataSet;
  4.  
  5. public MultipleTypesAdapter(List<RowType> dataSet) {
  6. this.dataSet = dataSet;
  7. }
  8.  
  9. @Override
  10. public int getItemViewType(int position) {
  11. if (dataSet.get(position) instanceof ButtonRowType) {
  12. return RowType.BUTTON_ROW_TYPE;
  13. } else if (dataSet.get(position) instanceof ImageRowType) {
  14. return RowType.IMAGE_ROW_TYPE;
  15. } else if (dataSet.get(position) instanceof TextRowType) {
  16. return RowType.TEXT_ROW_TYPE;
  17. } else {
  18. return -1;
  19. }
  20. }
  21.  
  22. @Override
  23. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  24. if (viewType == RowType.BUTTON_ROW_TYPE) {
  25. View view = LayoutInflater.from(parent.getContext())
  26. .inflate(R.layout.row_type_button, parent, false);
  27. return new ButtonViewHolder(view);
  28. } else if (viewType == RowType.IMAGE_ROW_TYPE) {
  29. View view = LayoutInflater.from(parent.getContext())
  30. .inflate(R.layout.row_type_image, parent, false);
  31. return new ImageViewHolder(view);
  32. } else if (viewType == RowType.TEXT_ROW_TYPE) {
  33. View view = LayoutInflater.from(parent.getContext())
  34. .inflate(R.layout.row_type_text, parent, false);
  35. return new TextViewHolder(view);
  36. } else {
  37. return null;
  38. }
  39. }
  40.  
  41. @Override
  42. public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
  43. if (holder instanceof ButtonViewHolder) {
  44. ((ButtonViewHolder) holder).button
  45. .setOnClickListener(((ButtonRowType) dataSet.get(position)).getOnClickListener());
  46. } else if (holder instanceof ImageViewHolder) {
  47. ((ImageViewHolder) holder).textView2
  48. .setText(((ImageRowType) dataSet.get(position)).getText());
  49. } else if (holder instanceof TextViewHolder) {
  50. ((TextViewHolder) holder).headerTextView
  51. .setText(((TextRowType) dataSet.get(position)).getHeader());
  52. ((TextViewHolder) holder).textView1
  53. .setText(((TextRowType) dataSet.get(position)).getText());
  54. }
  55. }
  56.  
  57. @Override
  58. public int getItemCount() {
  59. return dataSet.size();
  60. }
  61.  
  62. public static class ButtonViewHolder extends RecyclerView.ViewHolder {
  63.  
  64. public Button button;
  65.  
  66. public ButtonViewHolder(View itemView) {
  67. super(itemView);
  68. button = (Button) itemView.findViewById(R.id.button);
  69. }
  70. }
  71.  
  72. public static class TextViewHolder extends RecyclerView.ViewHolder {
  73.  
  74. public TextView headerTextView;
  75. public TextView textView1;
  76.  
  77. public TextViewHolder(View itemView) {
  78. super(itemView);
  79. headerTextView = (TextView) itemView.findViewById(R.id.header);
  80. textView1 = (TextView) itemView.findViewById(R.id.text);
  81. }
  82.  
  83. }
  84.  
  85. public static class ImageViewHolder extends RecyclerView.ViewHolder {
  86.  
  87. public ImageView imageView;
  88. public TextView textView2;
  89.  
  90. public ImageViewHolder(View itemView) {
  91. super(itemView);
  92. imageView = (ImageView) itemView.findViewById(R.id.image);
  93. textView2 = (TextView) itemView.findViewById(R.id.text_image);
  94. }
  95. }
  96. }
Add Comment
Please, Sign In to add comment