Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.28 KB | None | 0 0
  1. package com.asi.lodemorerecy;
  2.  
  3.  
  4. import android.support.v7.widget.LinearLayoutManager;
  5. import android.support.v7.widget.RecyclerView;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.View.OnClickListener;
  9. import android.view.ViewGroup;
  10. import android.widget.ProgressBar;
  11. import android.widget.TextView;
  12. import android.widget.Toast;
  13.  
  14. import java.util.List;
  15.  
  16.  
  17.  
  18. public class DataAdapter extends RecyclerView.Adapter {
  19. private final int VIEW_ITEM = 1;
  20. private final int VIEW_PROG = 0;
  21.  
  22. private List<Student> studentList;
  23.  
  24. // The minimum amount of items to have below your current scroll position
  25. // before loading more.
  26. private int visibleThreshold = 5;
  27. private int lastVisibleItem, totalItemCount;
  28. private boolean loading;
  29. private OnLoadMoreListener onLoadMoreListener;
  30.  
  31.  
  32.  
  33. public DataAdapter(List<Student> students, RecyclerView recyclerView) {
  34.         studentList = students;
  35.  
  36.         if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
  37.  
  38. final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView
  39.         .getLayoutManager();
  40.  
  41.  
  42.         recyclerView
  43.         .addOnScrollListener(new RecyclerView.OnScrollListener() {
  44. @Override
  45. public void onScrolled(RecyclerView recyclerView,
  46.         int dx, int dy) {
  47.         super.onScrolled(recyclerView, dx, dy);
  48.  
  49.         totalItemCount = linearLayoutManager.getItemCount();
  50.         lastVisibleItem = linearLayoutManager
  51.         .findLastVisibleItemPosition();
  52.         if (!loading
  53.         && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
  54.         // End has been reached
  55.         // Do something
  56.         if (onLoadMoreListener != null) {
  57.         onLoadMoreListener.onLoadMore();
  58.         }
  59.         loading = true;
  60.         }
  61.         }
  62.         });
  63.         }
  64.         }
  65.  
  66. @Override
  67. public int getItemViewType(int position) {
  68.         return studentList.get(position) != null ? VIEW_ITEM : VIEW_PROG;
  69.         }
  70.  
  71. @Override
  72. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent,
  73.         int viewType) {
  74.         RecyclerView.ViewHolder vh;
  75.         if (viewType == VIEW_ITEM) {
  76.         View v = LayoutInflater.from(parent.getContext()).inflate(
  77.         R.layout.list_row, parent, false);
  78.  
  79.         vh = new StudentViewHolder(v);
  80.         } else {
  81.         View v = LayoutInflater.from(parent.getContext()).inflate(
  82.         R.layout.progressbar_item, parent, false);
  83.  
  84.         vh = new ProgressViewHolder(v);
  85.         }
  86.         return vh;
  87.         }
  88.  
  89. @Override
  90. public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
  91.         if (holder instanceof StudentViewHolder) {
  92.  
  93.         Student singleStudent= (Student) studentList.get(position);
  94.  
  95.         ((StudentViewHolder) holder).tvName.setText(singleStudent.getName());
  96.  
  97.         ((StudentViewHolder) holder).tvEmailId.setText(singleStudent.getEmailId());
  98.  
  99.         ((StudentViewHolder) holder).student= singleStudent;
  100.  
  101.         } else {
  102.         ((ProgressViewHolder) holder).progressBar.setIndeterminate(true);
  103.         }
  104.         }
  105.  
  106. public void setLoaded() {
  107.         loading = false;
  108.         }
  109.  
  110. @Override
  111. public int getItemCount() {
  112.         return studentList.size();
  113.         }
  114.  
  115. public void setOnLoadMoreListener(OnLoadMoreListener onLoadMoreListener) {
  116.         this.onLoadMoreListener = onLoadMoreListener;
  117.         }
  118.  
  119.  
  120. //
  121. public static class StudentViewHolder extends RecyclerView.ViewHolder {
  122.     public TextView tvName;
  123.  
  124.     public TextView tvEmailId;
  125.  
  126.     public Student student;
  127.  
  128.     public StudentViewHolder(View v) {
  129.         super(v);
  130.         tvName = (TextView) v.findViewById(R.id.tvName);
  131.  
  132.         tvEmailId = (TextView) v.findViewById(R.id.tvEmailId);
  133.  
  134.         v.setOnClickListener(new OnClickListener() {
  135.  
  136.             @Override
  137.             public void onClick(View v) {
  138.                 Toast.makeText(v.getContext(),
  139.                         "OnClick :" + student.getName() + " \n "+student.getEmailId(),
  140.                         Toast.LENGTH_SHORT).show();
  141.  
  142.             }
  143.         });
  144.     }
  145. }
  146.  
  147. public static class ProgressViewHolder extends RecyclerView.ViewHolder {
  148.     public ProgressBar progressBar;
  149.  
  150.     public ProgressViewHolder(View v) {
  151.         super(v);
  152.         progressBar = (ProgressBar) v.findViewById(R.id.progressBar1);
  153.     }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement