Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.24 KB | None | 0 0
  1. package com.example.projet_android.recycler_view;
  2.  
  3. import android.content.Context;
  4. import android.text.Layout;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.ImageButton;
  9. import android.widget.ImageView;
  10. import android.widget.TextView;
  11.  
  12. import androidx.recyclerview.widget.RecyclerView;
  13.  
  14. import com.bumptech.glide.Glide;
  15. import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
  16. import com.example.projet_android.R;
  17.  
  18. import java.util.ArrayList;
  19. import java.util.List;
  20.  
  21. public class MyDataAdapter extends RecyclerView.Adapter<MyDataAdapter.AnimeViewHolder> {
  22.  
  23. public static class AnimeViewHolder extends RecyclerView.ViewHolder{
  24. private TextView nameTextView;
  25. private TextView dateTextView;
  26. private TextView noteTextView;
  27. private ImageView imageView;
  28. private ImageButton imageButton;
  29. private AnimeViewModel animeViewModel;
  30. private AnimeActionInterface animeActionInterface;
  31. private int position;
  32. private View v;
  33.  
  34. public AnimeViewHolder(View v, final AnimeActionInterface animeActionInterface) {
  35. super(v);
  36. this.v = v;
  37. nameTextView = v.findViewById(R.id.nom_textView);
  38. dateTextView = v.findViewById(R.id.date_textView);
  39. noteTextView = v.findViewById(R.id.note_textView);
  40. imageView = v.findViewById(R.id.icon_imageview);
  41. imageButton = v.findViewById(R.id.img_btn);
  42. this.animeActionInterface = animeActionInterface;
  43. setupListeners();
  44. // A COMPLETER
  45. }
  46.  
  47. private void setupListeners(){
  48. imageButton.setOnClickListener(new View.OnClickListener() {
  49. @Override
  50. public void onClick(View view) {
  51. animeActionInterface.onAnimeClick(animeViewModel.getMal_id());
  52. }
  53. });
  54. imageButton.setOnClickListener(new View.OnClickListener() {
  55. @Override
  56. public void onClick(View view) {
  57. animeActionInterface.onAnimeClick(animeViewModel.getMal_id());
  58. }
  59. });
  60. }
  61.  
  62.  
  63.  
  64.  
  65. void bind(AnimeViewModel animeViewModel, int position) {
  66.  
  67. this.animeViewModel = animeViewModel;
  68. this.position = position;
  69.  
  70. if(animeViewModel.getName().length() > 23)
  71. nameTextView.setText(animeViewModel.getName().substring(0,23)+"...");
  72. else
  73. nameTextView.setText(animeViewModel.getName());
  74. dateTextView.setText(animeViewModel.getDate());
  75. noteTextView.setText( "Rated : " + animeViewModel.getNote() +"/10");
  76. Glide.with(v)
  77. .load(animeViewModel.getImageUrl())
  78. .transition(DrawableTransitionOptions.withCrossFade())
  79. .into(imageView);
  80.  
  81. }
  82.  
  83.  
  84. }
  85.  
  86.  
  87.  
  88.  
  89. public static class AnimeViewHolderGrid extends RecyclerView.ViewHolder{
  90. private TextView nameTextView;
  91. private TextView dateTextView;
  92. private TextView noteTextView;
  93. private ImageView imageView;
  94. private ImageButton imageButton;
  95. private AnimeViewModel animeViewModel;
  96. private AnimeActionInterface animeActionInterface;
  97. private int position;
  98. private View v;
  99.  
  100. public AnimeViewHolderGrid(View v, final AnimeActionInterface animeActionInterface) {
  101. super(v);
  102. this.v = v;
  103. nameTextView = v.findViewById(R.id.nom_textView);
  104. dateTextView = v.findViewById(R.id.date_textView);
  105. noteTextView = v.findViewById(R.id.note_textView);
  106. imageView = v.findViewById(R.id.icon_imageview);
  107. imageButton = v.findViewById(R.id.img_btn);
  108. this.animeActionInterface = animeActionInterface;
  109. setupListeners();
  110. // A COMPLETER
  111. }
  112.  
  113. private void setupListeners(){
  114. imageButton.setOnClickListener(new View.OnClickListener() {
  115. @Override
  116. public void onClick(View view) {
  117. animeActionInterface.onAnimeClick(animeViewModel.getMal_id());
  118. }
  119. });
  120. imageButton.setOnClickListener(new View.OnClickListener() {
  121. @Override
  122. public void onClick(View view) {
  123. animeActionInterface.onAnimeClick(animeViewModel.getMal_id());
  124. }
  125. });
  126. }
  127.  
  128.  
  129.  
  130.  
  131. void bind(AnimeViewModel animeViewModel, int position) {
  132.  
  133. this.animeViewModel = animeViewModel;
  134. this.position = position;
  135. nameTextView.setText(animeViewModel.getName());
  136. dateTextView.setText(animeViewModel.getDate());
  137. noteTextView.setText(animeViewModel.getNote() +"/10");
  138. Glide.with(v)
  139. .load(animeViewModel.getImageUrl())
  140. .transition(DrawableTransitionOptions.withCrossFade())
  141. .into(imageView);
  142.  
  143. }
  144.  
  145.  
  146. }
  147.  
  148.  
  149.  
  150.  
  151.  
  152. private List<AnimeViewModel> animeViewModelList;
  153. private AnimeActionInterface animeActionInterface;
  154. private String layout;
  155.  
  156. public String getLayout() {
  157. return layout;
  158. }
  159.  
  160. public void setLayout(String layout) {
  161. this.layout = layout;
  162. }
  163.  
  164. public MyDataAdapter(AnimeActionInterface animeActionInterface){
  165. animeViewModelList = new ArrayList<>();
  166. this.animeActionInterface = animeActionInterface;
  167. this.layout = "";
  168. }
  169.  
  170. public void bindViewModels(List<AnimeViewModel> animeViewModelList) {
  171. this.animeViewModelList.clear();
  172. this.animeViewModelList.addAll(animeViewModelList);
  173. notifyDataSetChanged();
  174. }
  175.  
  176.  
  177.  
  178.  
  179. @Override
  180. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent,
  181. int viewType) {
  182. // create a new view
  183. Context context = parent.getContext();
  184. LayoutInflater inflater = LayoutInflater.from(context);
  185. if(this.layout =="grid"){
  186. View view = inflater.inflate(R.layout.item_recycler_view_case, parent, false);
  187. AnimeViewHolderGrid animeViewHolder = new AnimeViewHolderGrid(view, animeActionInterface);
  188. return animeViewHolder;
  189. }
  190. else{
  191. View view = inflater.inflate(R.layout.item_recyclerview, parent, false);
  192. AnimeViewHolder animeViewHolder = new AnimeViewHolder(view, animeActionInterface);
  193. return animeViewHolder;
  194. }
  195.  
  196. }
  197.  
  198.  
  199.  
  200. @Override
  201. public void onBindViewHolder(AnimeViewHolder holder, int position) {
  202. holder.bind(animeViewModelList.get(position), position);
  203. }
  204.  
  205.  
  206. @Override
  207. public void onBindViewHolder(AnimeViewHolderGrid holder, int position) {
  208. holder.bind(animeViewModelList.get(position), position);
  209. }
  210.  
  211.  
  212. @Override
  213. public int getItemCount() {
  214. return animeViewModelList.size();
  215. }
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement