Skip to content

Instantly share code, notes, and snippets.

@ntorvik
Created July 2, 2015 15:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ntorvik/73de30aa6862a66e6102 to your computer and use it in GitHub Desktop.
Save ntorvik/73de30aa6862a66e6102 to your computer and use it in GitHub Desktop.
public class MyTaskListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
OnItemClickListener mItemClickListener;
Context context;
List<Task> dataSet;
Database database;
public MyTaskListAdapter(Context context, List<Task> dataSet, Database database) {
this.context = context;
this.dataSet = dataSet;
this.database = database;
}
@Override
public long getItemId(int position) {
return super.getItemId(position);
}
@Override
public int getItemViewType(int pos) {
Task task = dataSet.get(pos);
if (task.getTask_type().equals("email")) {
return 0; // arbitrary number to = Email type
}
if (task.getTask_type().equals("sms")) {
return 1; // arbitrary number to = SMS type
}
return super.getItemViewType(pos);
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch(viewType) {
case 0: {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview_email, parent, false);
return new myViewHolder(v);
}
case 1: {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview_sms, parent, false);
return new myViewHolder(v);
}
}
return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder vHolder, int pos) {
Task task = dataSet.get(pos);
myViewHolder holder = (myViewHolder) vHolder;
holder.title.setText("Title: " + (String) task.getTask_title());
// ** SNIPPED FOR BREVITY
}
@Override
public int getItemCount() {
return dataSet.size();
}
public class myViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
{
TextView title;
public myViewHolder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.task_title);
title.setSingleLine();
title.setHorizontallyScrolling(false);
title.setEllipsize(TextUtils.TruncateAt.END);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (mItemClickListener != null) {
int item = getAdapterPosition();
Task task = dataSet.get(item);
mItemClickListener.onItemClick(v, task, item);
// getPulseAnimator(itemView, 0.85f, 1.1f).start();
}
}
}
public interface OnItemClickListener {
public void onItemClick(View view , Task task, int pos);
}
public void SetOnItemClickListener(final OnItemClickListener mItemClickListener) {
this.mItemClickListener = mItemClickListener;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment