Я создаю простое приложение Todolist для Android, используя Retrofit2.Я получил класс-адаптер для создания Recyclerview с Todos из списка.Это работает без проблем (здесь идет код):
public class TodolistAdapter extends RecyclerView.Adapter<TodolistAdapter.TodoViewHolder> {
private ArrayList<Todolist> todoData;
public static class TodoViewHolder extends RecyclerView.ViewHolder {
public TextView todoView;
public TodoViewHolder(TextView textView) {
super(textView);
todoView = textView;
}
}
public TodolistAdapter(ArrayList<Todolist> dataset) {
todoData = dataset;
}
@Override
public TodolistAdapter.TodoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// create a new view
TextView v = (TextView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.todolist_text_view, parent, false);
TodoViewHolder vh = new TodoViewHolder(v);
return vh;
}
// Replace the contents of a view (invoked by the layout manager)
@Override
public void onBindViewHolder(final TodoViewHolder holder, final int position) {
// - get element from your dataset at this position
// - replace the contents of the view with that element
holder.todoView.setText(todoData.get(position).getList_name());
holder.todoView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String listID = todoData.get(position).getList_id();
Intent intent = new Intent(holder.todoView.getContext(), TodoActivity.class);
intent.putExtra("list_id", listID);
holder.todoView.getContext().startActivity(intent);
}
});
}
// Return the size of your dataset (invoked by the layout manager)
@Override
public int getItemCount() {
return todoData.size();
}
}
То, что я получаю, это список с Todos как TextViews.Теперь я хочу добавить флажок слева от TextViews, чтобы отметить / снять галочку с одной задачи.
Но я не знаю, как передать TextView и флажок ViewHolder.Нужно ли создавать Viewgroup внутри соответствующего xml и передавать его в конструктор ViewHolder?Как может выглядеть возможный xml?Я немного застрял здесь, потому что я новичок в мире Android View.