Created
June 12, 2016 13:13
-
-
Save StefanDeBruijn/f032eac6619ac1b8420e352b883ea4dd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.TimingSolutions.CompetitionHQ.ui.adapter; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.ImageView; | |
import android.widget.TextView; | |
import com.TimingSolutions.CompetitionHQ.R; | |
import com.TimingSolutions.CompetitionHQ.model.recyclerview.GroupData; | |
import com.google.common.collect.Multimap; | |
import java.util.ArrayList; | |
import java.util.Collection; | |
import java.util.Collections; | |
import java.util.Comparator; | |
import java.util.List; | |
import java.util.Map; | |
public class TopRecyclerViewAdapter | |
extends RecyclerView.Adapter<TopRecyclerViewAdapter.ViewHolder> { | |
private List<Map.Entry<GroupData, Collection<Integer>>> mValues; | |
public static class ViewHolder extends RecyclerView.ViewHolder { | |
public final TextView et_first_name, et_surname, et_id, et_place; | |
public final ImageView iv_face; | |
public ViewHolder(View view) { | |
super(view); | |
et_first_name = (TextView) view.findViewById(R.id.et_first_name); | |
et_surname = (TextView) view.findViewById(R.id.et_surname); | |
et_id = (TextView) view.findViewById(R.id.et_id); | |
et_place = (TextView) view.findViewById(R.id.et_place); | |
iv_face = (ImageView) view.findViewById(R.id.iv_face); | |
} | |
} | |
public List<Map.Entry<GroupData, Collection<Integer>>> getData() { | |
return mValues; | |
} | |
public void clear() { | |
mValues.clear(); | |
} | |
public TopRecyclerViewAdapter(Multimap<GroupData, Integer> items) { | |
mValues = new ArrayList<>(items.asMap().entrySet()); | |
Collections.sort(mValues, new Comparator<Map.Entry<GroupData, Collection<Integer>>>() { | |
@Override | |
public int compare(Map.Entry<GroupData, Collection<Integer>> e1, | |
Map.Entry<GroupData, Collection<Integer>> e2) { | |
return e1.getValue().iterator().next() - e2.getValue().iterator().next(); | |
} | |
}); | |
} | |
@Override | |
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_top, parent, false); | |
return new ViewHolder(view); | |
} | |
@Override | |
public void onBindViewHolder(final ViewHolder holder, final int position) { | |
final Map.Entry<GroupData, Collection<Integer>> item = mValues.get(position); | |
// Set the image field | |
holder.iv_face.setImageResource(item.getKey().getMember().gender.equalsIgnoreCase("m") ? R.drawable.icon_male : R.drawable.icon_female); | |
// Set the first name field | |
holder.et_first_name.setText(item.getKey().getMember().firstName); | |
// Set the surname field | |
holder.et_surname.setText(item.getKey().getMember().surname); | |
// Set the id field | |
holder.et_id.setText(String.valueOf(item.getKey().getMember()._id)); | |
// Set the place field | |
holder.et_place.setText(String.valueOf(item.getValue().iterator().next())); | |
} | |
@Override | |
public int getItemCount() { | |
return mValues.size(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment