AutorÃa | Ultima modificación | Ver Log |
package com.cesams.twogetskills.adapter;import android.content.Context;import android.view.LayoutInflater;import android.view.ViewGroup;import androidx.recyclerview.widget.RecyclerView;import com.cesams.twogetskills.viewdata.UserProfileViewData;import com.cesams.twogetskills.skeleton.IUserProfileDelegateAdapter;import com.cesams.twogetskills.skeleton.ITwoGetSkills;import java.util.HashMap;import java.util.List;public class UserProfileListViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {private final static String TAG = "C2GS - UserProfileListViewAdapter";private List<UserProfileViewData> mData;private LayoutInflater mInflater;private Context mContext;private ITwoGetSkills iTwoGetSkills;private HashMap<Integer, IUserProfileDelegateAdapter> adapterHashMap;// data is passed into the constructorpublic UserProfileListViewAdapter(Context context, List<UserProfileViewData> data) {this.mContext = context;this.iTwoGetSkills = (ITwoGetSkills) context;this.mInflater = LayoutInflater.from(context);this.mData = data;this.adapterHashMap = new HashMap<>();UserProfileListViewHeaderAdapter headerAdapter = new UserProfileListViewHeaderAdapter(mContext);UserProfileListViewItemAdapter itemAdapter = new UserProfileListViewItemAdapter(mContext);adapterHashMap.put(UserProfileViewData.TYPE_COMPANY, headerAdapter);adapterHashMap.put(UserProfileViewData.TYPE_ITEM, itemAdapter);}// inflates the row layout from xml when needed@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {return adapterHashMap.get(viewType).onCreateViewHolder(parent, viewType);}// binds the data to the TextView in each row@Overridepublic void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {adapterHashMap.get(getItemViewType(position)).onBindViewHolder(holder, mData.get(position));}@Overridepublic int getItemViewType(int position) {return mData.get(position).getType();}@Overridepublic int getItemCount() {return mData.size();}}