Skip to content

Instantly share code, notes, and snippets.

@gantonious
Created December 27, 2016 17:46
Show Gist options
  • Save gantonious/b587f767b051035a99373177302c81f2 to your computer and use it in GitHub Desktop.
Save gantonious/b587f767b051035a99373177302c81f2 to your computer and use it in GitHub Desktop.
package ca.antonious.sample.viewcells;
import android.view.View;
import android.widget.TextView;
import ca.antonious.sample.R;
import ca.antonious.sample.models.Task;
import ca.antonious.viewcelladapter.BaseViewHolder;
import ca.antonious.viewcelladapter.BindListener;
import ca.antonious.viewcelladapter.viewcells.GenericViewCell;
/**
* Created by George on 2016-11-17.
*/
public class TaskViewCell extends GenericViewCell<TaskViewCell.TaskViewHolder, Task> {
public TaskViewCell(Task model) {
super(model);
}
@Override
public int getLayoutId() {
return R.layout.task_list_item;
}
@Override
public void bindViewCell(TaskViewHolder taskViewHolder) {
Task task = getModel();
taskViewHolder.setTaskName(task.name);
taskViewHolder.setNumberOfCompletions(task.timesCompleted);
}
@BindListener(OnTaskClickListener.class)
public void bindOnClickListener(TaskViewHolder taskViewHolder, final OnTaskClickListener onTaskClickListener) {
taskViewHolder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onTaskClickListener.onTaskClicked(getModel());
}
});
}
public interface OnTaskClickListener {
void onTaskClicked(Task task);
}
public static class TaskViewHolder extends BaseViewHolder {
private TextView taskNameTextView;
private TextView numberOfCompletionsTextView;
public TaskViewHolder(View itemView) {
super(itemView);
taskNameTextView = (TextView) itemView.findViewById(R.id.task_title);
numberOfCompletionsTextView = (TextView) itemView.findViewById(R.id.task_num_compeltions);
}
public void setTaskName(String taskName) {
taskNameTextView.setText(taskName);
}
public void setNumberOfCompletions(int numCompletions) {
numberOfCompletionsTextView.setText(String.valueOf(numCompletions));
}
public void setOnClickListener(View.OnClickListener onClickListener) {
itemView.setOnClickListener(onClickListener);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment