thieumao

Adapter RecyclerView Android Example

Oct 11th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.38 KB | None | 0 0
  1. package com.howkteam.recyclerviewexample;
  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. public class RecyclerDataAdapter extends RecyclerView.Adapter<RecyclerDataAdapter.DataViewHolder> {
  13.  
  14.     private List<Person> people;
  15.     private Context context;
  16.  
  17.     public RecyclerDataAdapter(Context context, List<Person> people) {
  18.         this.context = context;
  19.         this.people = people;
  20.     }
  21.  
  22.     @Override
  23.     public int getItemCount() {
  24.         return people == null ? 0 : people.size();
  25.     }
  26.  
  27.     @Override
  28.     public RecyclerDataAdapter.DataViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  29.         View itemView;
  30.  
  31.         // Kiểm tra item view type, nếu là 1 thì inflate layout item_names.xml, 2 thì sử dụng item_names_female.
  32.         switch (viewType) {
  33.             case 1:
  34.                 itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_names, parent, false);
  35.                 break;
  36.             case 2:
  37.                 itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_names_female, parent, false);
  38.                 break;
  39.             default:
  40.                 itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_names, parent, false);
  41.                 break;
  42.         }
  43.  
  44.  
  45.         return new DataViewHolder(itemView);
  46.     }
  47.  
  48.     @Override
  49.     public int getItemViewType(int position) {
  50.         // Cài đặt kiểu item view type cho từng phần tử, nếu có giới tính là nam thì trả về 1, nữ thì trả về 2.
  51.         if (people.get(position).isMale()) {
  52.             return 1;
  53.         } else {
  54.             return 2;
  55.         }
  56.     }
  57.  
  58.     @Override
  59.     public void onBindViewHolder(RecyclerDataAdapter.DataViewHolder holder, int position) {
  60.         String name = people.get(position).getName();
  61.         holder.tvName.setText(name);
  62.     }
  63.  
  64.     /**
  65.      * Data ViewHolder class.
  66.      */
  67.     public static class DataViewHolder extends RecyclerView.ViewHolder {
  68.  
  69.         private TextView tvName;
  70.  
  71.         public DataViewHolder(View itemView) {
  72.             super(itemView);
  73.  
  74.             tvName = (TextView) itemView.findViewById(R.id.tv_name);
  75.         }
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment