Adapter с двумя макетами элементов

Я хочу, чтобы мой адаптер в зависимости от наличия .getCommnet() выводил элементы с разными layout. Но мой адаптер выводит все элементы c одним и тем же layout (example_of_item1).

Код адаптера:

public class TaskAdapter extends RecyclerView.Adapter<TaskAdapter.TaskViewHolder> {

    private ArrayList<Items> elements;
    private Context context;
    private int position;
    private int index;

    public TaskAdapter (ArrayList<Items> elements){
        this.elements = elements;
    }

    @NonNull
    @Override
    public TaskViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        context = parent.getContext();
        int LayoutIdForListItem;

        if (elements.get(position).getComment() != null) {
            LayoutIdForListItem = R.layout.example_of_item1;
            index = 1;
        }
        else {
            LayoutIdForListItem = R.layout.example_of_item2;
            index = 2;
        }

        LayoutInflater layoutInflater = LayoutInflater.from(context);
        View view = layoutInflater.inflate(LayoutIdForListItem, parent, false);

        TaskViewHolder viewHolder = new TaskViewHolder(view);

        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull TaskViewHolder holder, int position) {
        this.position = position;
        holder.bind(position);
    }

    @Override
    public int getItemCount() {
        return elements.size();
    }

    class TaskViewHolder extends RecyclerView.ViewHolder {

        TextView task;
        Button button;

        public TaskViewHolder(@NonNull View itemView) {
            super(itemView);

            if (index == 1) {
                task = itemView.findViewById(R.id.task);
                button = itemView.findViewById(R.id.button);
            }
            else {
                task = itemView.findViewById(R.id.task);
            }
        }

        void bind(final int position) {

            if (index == 1) {
                task.setText(elements.get(position).getTask());

                button.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        AlertDialog dialog = new AlertDialog.Builder(context).setMessage(elements.get(position).getComment())
                                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        dialog.dismiss();
                                    }
                                }).create();
                        dialog.show();
                    }
                });
            }
            else {
                task.setText(elements.get(position).getTask());
            }
        }
    }
}

Код класса Item:

public class Items implements Serializable {

    private String Task;
    private String Comment;
    private String FirstDate;
    private String SecondDate;
    private ArrayList<String>  Subtasks;

    public Items (String task, String comment, String firstDate, String secondDate, ArrayList<String> subtask){
        this.Task = task;
        this.Comment = comment;
        this.FirstDate = firstDate;
        this.SecondDate = secondDate;
        this.Subtasks = subtask;
    }

    public String getTask() {
        return Task;
    }

    public void setTask(String task) {
        Task = task;
    }

    public String getComment() {
        return Comment;
    }

    public void setComment(String comment) {
        Comment = comment;
    }

Ответы (0 шт):