1

I have two vertical recycler view and I want to display it as an item of another horizontal recycler view. Two vertical recycler view have their own model class and horizontal recycler has it's own model class in which I have taken a arraylist of previous two model class. What should I write in onBindViewHolder class of horizontal recycler view to display both of my vertical recycler view.

This is adapter class of horizontal recycler view :-

public class QuestionAdapterMix extends RecyclerView.Adapter<QuestionAdapterMix.ViewHolder> {

    private List<Question_Model_Mix> questionList;

    public QuestionAdapterMix(List<Question_Model_Mix> questionList) {
        this.questionList = questionList;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_mixandmatch, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {
        RecyclerView recyclerView1;
        RecyclerView recyclerView2;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            recyclerView1 = itemView.findViewById(R.id.leftlyt);
            recyclerView2 = itemView.findViewById(R.id.rightlyt);
        }
    }
}

This is adapter class of left vertical recycler view :-

public class Mixandmatchadapter_left extends RecyclerView.Adapter<Mixandmatchadapter_left.ViewHolder> {

    List<Mixandmatchclass_left> datalist_left;
    Context context;
    int indexleft;
    String textleft;

    public Mixandmatchadapter_left(List<Mixandmatchclass_left> datalist_left, Context context) {
        this.datalist_left = datalist_left;
        this.context = context;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
        View view = layoutInflater.inflate(R.layout.row_itemmixandmatch_left, parent, false);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        holder.mainbutton_left.setText(datalist_left.get(position).getStatementleft());
    }

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

    class ViewHolder extends RecyclerView.ViewHolder {
        Button mainbutton_left;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            mainbutton_left = itemView.findViewById(R.id.mainbuttonleft);
        }
    }
}

This is adapter class of right vertical recycler view :-

public class mixandmatchadapter extends RecyclerView.Adapter<mixandmatchadapter.ViewHolder> {

    private static final String TAG = "RecyclerAdapter";
    List<Mixmatchclass> datalist;
    Context context;
    int index;
    String text;

    public mixandmatchadapter(int index, String text) {
        this.index = index;
        this.text = text;
    }

    public mixandmatchadapter(List<Mixmatchclass> datalist, Context context) {
        this.datalist = datalist;
        this.context = context;
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
        View view = layoutInflater.inflate(R.layout.row_itemmixandmatch, parent, false);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        holder.mainbutton.setText(datalist.get(position).getStatement());
        //String.valueOf(position))
    }

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

    class ViewHolder extends RecyclerView.ViewHolder {
        Button mainbutton;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            mainbutton = itemView.findViewById(R.id.mainbutton);
        }
    }
}

This is main class :-

public class Question_mix extends AppCompatActivity {
    RecyclerView questionview;
    private Button sumtbtn;
    List<Question_Model_Mix> questionslist;
    ArrayList<Mixandmatchclass_left> datalist_left;
    ArrayList<Mixmatchclass> datalist;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_question__model_mix);
        getSupportActionBar().hide();
        questionview = findViewById(R.id.question_mixandmatch);
        sumtbtn = findViewById(R.id.submitbtn);

        datalist = new ArrayList<>();
        datalist.add(new Mixmatchclass("Statement 2", 0));
        datalist.add(new Mixmatchclass("Statement 4", 1));
        datalist.add(new Mixmatchclass("Statement 1", 2));
        datalist.add(new Mixmatchclass("Statement 5", 3));
        datalist.add(new Mixmatchclass("Statement 3", 4));
        datalist.add(new Mixmatchclass("Statement 7", 5));
        datalist.add(new Mixmatchclass("Statement 6", 6));

        datalist_left = new ArrayList<>();
        datalist_left.add(new Mixandmatchclass_left("1", 0));
        datalist_left.add(new Mixandmatchclass_left("2", 1));
        datalist_left.add(new Mixandmatchclass_left("3", 2));
        datalist_left.add(new Mixandmatchclass_left("4", 3));
        datalist_left.add(new Mixandmatchclass_left("5", 4));
        datalist_left.add(new Mixandmatchclass_left("6", 5));
        datalist_left.add(new Mixandmatchclass_left("7", 6));

        questionslist = new ArrayList<>();
        questionslist.add(new Question_Model_Mix(datalist, datalist_left));

        questionview.setAdapter(new QuestionAdapterMix(questionslist));

        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
        questionview.setLayoutManager(layoutManager);
    }
}
Kaan
  • 5,434
  • 3
  • 19
  • 41

0 Answers0