title: Problems with nested Recylerview
body: <p>I have data from Firebase data like below:</p>
  
  <p><a href="https://i.stack.imgur.com/uEBaO.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/uEBaO.png" alt="enter image description here"></a></p>
  
  <p>My problem is my RecyclerView display not as expected. The data of my <code>messages</code> were accumulated, it should go one part by one part and should not be accumulated. I do not know how to explain properly since it has so much codes.</p>
  
  <p>My current output shown as below:</p>
  
  <p><a href="https://i.stack.imgur.com/S2DgT.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/S2DgT.png" alt="enter image description here"></a></p>
  
  <p>Ask Teacher List Page:</p>
  
  <pre><code>package xxx.xxx.my.package
  
  import android.content.DialogInterface;
  import android.content.Intent;
  
  import android.content.SharedPreferences;
  import android.os.Build;
  import android.os.Bundle;
  import android.support.design.widget.BottomSheetBehavior;
  import android.support.design.widget.BottomSheetDialog;
  import android.support.v7.app.AppCompatActivity;
  import android.support.v7.widget.DefaultItemAnimator;
  import android.support.v7.widget.LinearLayoutManager;
  import android.support.v7.widget.RecyclerView;
  import android.support.v7.widget.Toolbar;
  import android.view.View;
  import android.view.WindowManager;
  import android.widget.RelativeLayout;
  import android.widget.TextView;
  import android.widget.Toast;
  
  import com.balysv.materialripple.MaterialRippleLayout;
  import com.github.florent37.fiftyshadesof.FiftyShadesOf;
  import com.google.firebase.auth.FirebaseAuth;
  import com.google.firebase.database.DataSnapshot;
  import com.google.firebase.database.DatabaseError;
  import com.google.firebase.database.FirebaseDatabase;
  import com.google.firebase.database.ValueEventListener;
  import com.google.gson.Gson;
  import com.google.gson.GsonBuilder;
  import com.material.components.R;
  import com.material.components.activity.lesson.LessonActivity;
  import com.material.components.adapter.AdapterAskTeacherList;
  import com.material.components.adapter.AdapterQuestionToTeacher;
  import com.material.components.model.AskTeacherInfo;
  import com.material.components.model.AskTeacherItems;
  import com.material.components.model.Chapter;
  import com.material.components.model.QuestionsToTeacher;
  import com.material.components.model.SubChapter;
  import com.material.components.model.Subject;
  
  import org.json.JSONException;
  import org.json.JSONObject;
  
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.List;
  
  public class AskTeacherList extends AppCompatActivity {
  
      private List&lt;AskTeacherItems&gt; askTeacherItemsList = new ArrayList&lt;&gt;();
      private AdapterAskTeacherList adapterAskTeacherList;
      private RecyclerView askTeacherListRecyclerView;
      private RecyclerView recyclerViewQuestions;
      private SharedPreferences eduYearSharedPreferences;
      private FiftyShadesOf fiftyShadesOf;
      private RelativeLayout layout1;
      private SharedPreferences analysisSharedPreferences;
      private SharedPreferences.Editor editorAnalysisPreferences;
      public ArrayList&lt;QuestionsToTeacher&gt; questionsToTeacherList = new ArrayList&lt;&gt;();
      private AdapterQuestionToTeacher adapterQuestionToTeacher;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_ask_teacher_list);
          Toolbar toolbar = findViewById(R.id.toolbar);
          setSupportActionBar(toolbar);
  
          getSupportActionBar().setDisplayHomeAsUpEnabled(true);
          getSupportActionBar().setHomeButtonEnabled(true);
  
          analysisSharedPreferences  = getApplicationContext().getSharedPreferences("AnalysisSharedPreferences",MODE_PRIVATE);
          editorAnalysisPreferences = analysisSharedPreferences.edit();
  
          adapterAskTeacherList = new AdapterAskTeacherList(askTeacherItemsList, questionsToTeacherList, getApplicationContext());
          askTeacherListRecyclerView = findViewById(R.id.askTeacherListRecyclerView);
          layout1 = findViewById(R.id.layout1);
          fiftyShadesOf = FiftyShadesOf.with(this).on(R.id.layout1).start();
          fiftyShadesOf.start();
  
          askTeacherListRecyclerView.setHasFixedSize(true);
          askTeacherListRecyclerView.setNestedScrollingEnabled(false);
  
  
          RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
          askTeacherListRecyclerView.setLayoutManager(layoutManager);
          askTeacherListRecyclerView.setItemAnimator(new DefaultItemAnimator());
          askTeacherListRecyclerView.setAdapter(adapterAskTeacherList);
          adapterAskTeacherList.setOnClickListener(new AdapterAskTeacherList.OnClickListener() {
              @Override
              public void onItemClick(View view, AskTeacherItems obj, int pos) {
                  /*
                  Intent gotoLesson = new Intent(AskTeacherList.this, LessonActivity.class);
                  gotoLesson.putExtra("subchapter_id",obj.subChapterId);
                  gotoLesson.putExtra("subChapterTitle",obj.subChapterTitle);
                  editorAnalysisPreferences.putString("subchapterId",obj.subChapterId);
                  editorAnalysisPreferences.commit();
                  startActivity(gotoLesson);
                  */
              }
  
              @Override
              public void onItemLongClick(View view, AskTeacherItems obj, int pos) {
  
              }
          });
  
          displayAskTeacherItems();
  /*
  
          adapterQuestionToTeacher = new AdapterQuestionToTeacher(questionsToTeacherList);
          recyclerViewQuestions = findViewById(R.id.recyclerViewQuestions);
          LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext(),LinearLayoutManager.VERTICAL,false);
  
          recyclerViewQuestions.setLayoutManager(linearLayoutManager);
          recyclerViewQuestions.setHasFixedSize(true);
          recyclerViewQuestions.setNestedScrollingEnabled(false);
          recyclerViewQuestions.setAdapter(adapterQuestionToTeacher);*/
  
  
  
          eduYearSharedPreferences = getApplicationContext().getSharedPreferences("EduYearPreferences",   MODE_PRIVATE);
          showAdminMessage();
  
      }
  
      private BottomSheetBehavior mBehavior;
      private BottomSheetDialog mBottomSheetDialog;
      private View bottom_sheet;
      private void showAdminMessage()
      {
          bottom_sheet = findViewById(R.id.bottom_sheet_admin_message);
          mBehavior = BottomSheetBehavior.from(bottom_sheet);
  
          if (mBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED) {
              mBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
          }
  
          final View view = getLayoutInflater().inflate(R.layout.sheet_basic, null);
          ((TextView) view.findViewById(R.id.name)).setText("Test Name");
          ((TextView) view.findViewById(R.id.address)).setText(R.string.middle_lorem_ipsum);
          (view.findViewById(R.id.bt_close)).setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  mBottomSheetDialog.dismiss();
              }
          });
  
          (view.findViewById(R.id.bt_details)).setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  Toast.makeText(getApplicationContext(), "Details clicked", Toast.LENGTH_SHORT).show();
              }
          });
  
          mBottomSheetDialog = new BottomSheetDialog(this);
          mBottomSheetDialog.setContentView(view);
          if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.LOLLIPOP) {
              mBottomSheetDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
          }
  
          mBottomSheetDialog.show();
          mBottomSheetDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
              @Override
              public void onDismiss(DialogInterface dialog) {
                  mBottomSheetDialog = null;
              }
          });
      }
  
      private SubChapter subChapter;
      private  HashMap&lt;String,String&gt; dataAskTeacher = new HashMap&lt;&gt;();
      private void displayAskTeacherItems()
      {
          askTeacherItemsList.clear();
          FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
          String uuid = firebaseAuth.getUid();
          GsonBuilder builder = new GsonBuilder();
          final Gson gson = builder.create();
  
          FirebaseDatabase.getInstance().getReference().child("ask_teachers/students/"+uuid+"/subjects")
                  .addListenerForSingleValueEvent(new ValueEventListener() {
                      @Override
                      public void onDataChange(DataSnapshot dataSnapshot) {
  
  
  
                          for(DataSnapshot snapshot: dataSnapshot.getChildren())
                          {
                              final String subjectId = snapshot.getKey();
                              System.out.println("ssss--subject_id:-"+subjectId);
                              String eduYearId = eduYearSharedPreferences.getString("eduYearValue","");
  
  
                              //Chapters label
                              for(DataSnapshot chapterLabel: snapshot.getChildren()){
                                  //Chapter data
                                  for(DataSnapshot chapterData: chapterLabel.getChildren())
                                  {
                                      final String chapterId = chapterData.getKey();
                                      System.out.println("ssss--chapter_id:-"+chapterId);
                                      //Subchapter label
                                      for(DataSnapshot subChapterLabel: chapterData.getChildren())
                                      {
                                          //Subchapter Data
                                          for(DataSnapshot subChapterData: subChapterLabel.getChildren())
                                          {
                                              final String subchapterId = subChapterData.getKey();
  
  
                                                  FirebaseDatabase.getInstance().getReference().child("subjects/"+eduYearId+"/data_subject/"+subjectId)
                                                          .addListenerForSingleValueEvent(new ValueEventListener() {
                                                              @Override
                                                              public void onDataChange(DataSnapshot dataSubjectSnapshot) {
                                                                  String subjectReceived = gson.toJson(dataSubjectSnapshot.getValue());
  
                                                                  if(!subjectReceived.equals("null"))
                                                                  {
                                                                      Subject subject = gson.fromJson(subjectReceived,Subject.class);
  
                                                                      dataAskTeacher.put("subject_title",subject.subjectName);
                                                                  }
  
  
                                                              }
  
                                                              @Override
                                                              public void onCancelled(DatabaseError databaseError) {
  
                                                              }
                                                          });
  
  
                                                  FirebaseDatabase.getInstance().getReference().child("chapters/"+subjectId+"/chapters/"+chapterId)
                                                          .addListenerForSingleValueEvent(new ValueEventListener() {
                                                              @Override
                                                              public void onDataChange(DataSnapshot dataChapterSnapshot) {
  
                                                                  String chaptersReceived = gson.toJson(dataChapterSnapshot.getValue());
  
                                                                  if(!chaptersReceived.equals("null"))
                                                                  {
                                                                      System.out.println(chaptersReceived);
                                                                      Chapter chapter = gson.fromJson(chaptersReceived,Chapter.class);
  
                                                                      System.out.println("chapters---------");
                                                                      System.out.println(chapter.chapterTitle);
                                                                      dataAskTeacher.put("chapter_title",chapter.chapterTitle);
                                                                  }
  
                                                              }
  
                                                              @Override
                                                              public void onCancelled(DatabaseError databaseError) {
  
                                                              }
                                                          });
  
                                                  FirebaseDatabase.getInstance().getReference().child("subchapters/"+chapterId+"/subchapters_data/"+subchapterId)
                                                          .addListenerForSingleValueEvent(new ValueEventListener() {
  
  
                                                              @Override
                                                              public void onDataChange(DataSnapshot dataSubChapterSnapshot) {
                                                                  String dataSubChaptersReceived = gson.toJson(dataSubChapterSnapshot.getValue());
  
                                                                  if(!dataSubChaptersReceived.equals("null"))
                                                                  {
                                                                      fiftyShadesOf.stop();
                                                                      layout1.setVisibility(View.GONE);
  
                                                                      System.out.println("data subchapters----------------------");
                                                                      System.out.println(dataSubChaptersReceived);
                                                                      subChapter = gson.fromJson(dataSubChaptersReceived,SubChapter.class);
                                                                      dataAskTeacher.put("subchapter_title",subChapter.subchapterTitle);
                                                                      dataAskTeacher.put("subchapter_id",subChapter.subchapterId);
  
                                                                      System.out.println("subbbbb----"+subChapter.subchapterId);
  
                                                                      String dataAskTeacherReceived = gson.toJson(dataAskTeacher);
                                                                      AskTeacherItems askTeacherItems = gson.fromJson(dataAskTeacherReceived,AskTeacherItems.class);
  
                                                                      askTeacherItemsList.add(askTeacherItems);
                                                                      adapterAskTeacherList.notifyDataSetChanged();
                                                                  }
                                                              }
  
                                                              @Override
                                                              public void onCancelled(DatabaseError databaseError) {
  
                                                              }
  
                                                          });
  
  
  
                                                  //Messages Label
                                              System.out.println("subjechapterId...."+subchapterId);
  
  
                                              for(DataSnapshot messagesLabel: subChapterData.getChildren())
                                              {
                                                  //Messages Data
                                                  for(DataSnapshot messagesData: messagesLabel.getChildren())
                                                  {
                                                      String messageQuestion = gson.toJson(messagesData.getValue());
                                                      QuestionsToTeacher questionsToTeacher = gson.fromJson(messageQuestion,QuestionsToTeacher.class);
  
                                                      //Problem start here
                                                      questionsToTeacherList.add(questionsToTeacher); 
                                                      System.out.println(questionsToTeacher.messages+"    "+questionsToTeacher.questionStatus);
                                                  }
                                              }
  
  
                                          }
                                      }
                                  }
                              }
  
  
  
  
  
  
  
  
                          }
  
                      }
                      @Override
                      public void onCancelled(DatabaseError databaseError) {
  
                      }
                  });
      }
  
      @Override
      public boolean onSupportNavigateUp() {
          onBackPressed();
          return true;
      }
  }
  </code></pre>
  
  <hr>
  
  <p>Adapter Ask Teacher List</p>
  
  <pre><code>package xxx.xxx.my.package
  
  
  import android.content.Context;
  import android.support.v7.widget.LinearLayoutManager;
  import android.support.v7.widget.RecyclerView;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.RelativeLayout;
  import android.widget.TextView;
  
  import com.material.components.R;
  import com.material.components.activity.askteachers.AskTeacherList;
  import com.material.components.model.AskTeacherInfo;
  import com.material.components.model.AskTeacherItems;
  import com.material.components.model.QuestionsToTeacher;
  
  import java.util.ArrayList;
  import java.util.List;
  
  public class AdapterAskTeacherList extends RecyclerView.Adapter&lt;RecyclerView.ViewHolder&gt; {
  
      private List&lt;AskTeacherItems&gt; askTeacherListItems = new ArrayList&lt;&gt;();
      private OnClickListener onClickListener = null;
      private List&lt;QuestionsToTeacher&gt; questionsToTeacherList = new ArrayList&lt;&gt;();
      private Context context;
  
      public AdapterAskTeacherList(List&lt;AskTeacherItems&gt; askTeacherListItems, List&lt;QuestionsToTeacher&gt; questionsToTeacherList, Context context) {
          this.askTeacherListItems = askTeacherListItems;
          this.questionsToTeacherList = questionsToTeacherList;
          this.context = context;
      }
  
      @Override
      public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
          RecyclerView.ViewHolder vh;
          View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_ask_teacher_list,parent,false);
  
          vh = new OriginalViewHolder(v);
          return vh;
      }
  
      @Override
      public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
          if(holder instanceof  OriginalViewHolder)
          {
              OriginalViewHolder view = (OriginalViewHolder) holder;
              final AskTeacherItems askTeacherItems = askTeacherListItems.get(position);
              view.askTeacherStatus.setText(askTeacherItems.askTeacherStatus);
              view.dtCreated.setText(askTeacherItems.dtCreated);
              view.subjectTitle.setText(askTeacherItems.subjectTitle);
              view.chapterTitle.setText(askTeacherItems.chapterTitle);
              view.subchapter.setText(askTeacherItems.subChapterTitle);
  
              view.lyt_parent_ask_teacher_list.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View v) {
                      if(onClickListener == null) return;
                      onClickListener.onItemClick(v,askTeacherItems,position);
                  }
              });
  
              view.lyt_parent_ask_teacher_list.setOnLongClickListener(new View.OnLongClickListener() {
                  @Override
                  public boolean onLongClick(View v) {
                      if (onClickListener == null) return false;
                      onClickListener.onItemLongClick(v, askTeacherItems, position);
                      return true;
                  }
              });
  
              LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context,LinearLayoutManager.VERTICAL,false);
  
              view.recyclerView.setLayoutManager(linearLayoutManager);
              view.recyclerView.setHasFixedSize(true);
              view.recyclerView.setNestedScrollingEnabled(false);
  
              AdapterQuestionToTeacher adapterQuestionToTeacher = new AdapterQuestionToTeacher(questionsToTeacherList);
  
              view.recyclerView.setAdapter(adapterQuestionToTeacher);
  
  
          }
      }
  
  
      public class OriginalViewHolder extends RecyclerView.ViewHolder{
  
          public View lyt_parent_ask_teacher_list;
          public TextView subjectTitle, chapterTitle,subchapter,askTeacherStatus,dtCreated;
          public RelativeLayout lyt_checked, lyt_image;
          public RecyclerView recyclerView;
          public OriginalViewHolder(View itemView) {
              super(itemView);
              lyt_parent_ask_teacher_list = itemView.findViewById(R.id.lyt_parent_ask_teacher_list);
              subjectTitle = itemView.findViewById(R.id.subjectTitle);
              chapterTitle = itemView.findViewById(R.id.chapterTitle);
              subchapter = itemView.findViewById(R.id.subchapter);
              askTeacherStatus = itemView.findViewById(R.id.askTeacherStatus);
              dtCreated = itemView.findViewById(R.id.dtCreated);
              lyt_checked = itemView.findViewById(R.id.lyt_checked);
              lyt_image = itemView.findViewById(R.id.lyt_image);
              recyclerView = itemView.findViewById(R.id.recyclerViewQuestions);
  
          }
      }
  
      @Override
      public int getItemCount() {
          return askTeacherListItems.size();
      }
  
  
      public void setOnClickListener(OnClickListener onClickListener) {
          this.onClickListener = onClickListener;
      }
  
  
      public interface OnClickListener {
          void onItemClick(View view, AskTeacherItems obj, int pos);
  
          void onItemLongClick(View view, AskTeacherItems obj, int pos);
      }
  }
  </code></pre>
  
  <p>AdapterQuestionToTeacher</p>
  
  <pre><code>package xxx.xxx.my.package;
  
  
  import android.support.v7.widget.RecyclerView;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.TextView;
  
  import com.material.components.R;
  import com.material.components.model.QuestionsToTeacher;
  
  import java.util.ArrayList;
  import java.util.List;
  
  public class AdapterQuestionToTeacher extends RecyclerView.Adapter&lt;RecyclerView.ViewHolder&gt;{
  
      private List&lt;QuestionsToTeacher&gt; questionsToTeacherList = new ArrayList&lt;&gt;();
      public AdapterQuestionToTeacher(List&lt;QuestionsToTeacher&gt; questionsToTeacherList) {
          this.questionsToTeacherList = questionsToTeacherList;
      }
  
      @Override
      public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
          RecyclerView.ViewHolder vh;
          View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_ask_teacher_question,parent,false);
          vh = new OriginalViewHolder(v);
          return vh;
      }
  
      public class OriginalViewHolder extends RecyclerView.ViewHolder{
  
          public TextView questionStatus,messages;
          public OriginalViewHolder(View itemView) {
              super(itemView);
              questionStatus = itemView.findViewById(R.id.questionStatus);
              messages = itemView.findViewById(R.id.messages);
          }
      }
  
      @Override
      public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
          if(holder instanceof  OriginalViewHolder)
          {
              OriginalViewHolder view = (OriginalViewHolder) holder;
              final QuestionsToTeacher questionsToTeacher = questionsToTeacherList.get(position);
              view.questionStatus.setText(questionsToTeacher.questionStatus);
              view.messages.setText(questionsToTeacher.messages);
          }
      }
  
      @Override
      public int getItemCount() {
          return questionsToTeacherList.size();
      }
  }
  </code></pre>
  
  <p>content_ask_teacher_list.xml</p>
  
  <p>
  </p>
  
  <pre><code>&lt;include android:id="@+id/layout1" layout="@layout/item_ask_teacher_list" /&gt;
  &lt;android.support.v7.widget.RecyclerView
      android:id="@+id/askTeacherListRecyclerView"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"&gt;
  
  &lt;/android.support.v7.widget.RecyclerView&gt;
  </code></pre>
  
  <p></p>
  
  <p>item_ask_teacher_list.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/lyt_parent_ask_teacher_list"
      style="@style/RippleStyleBlack"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_gravity="center_horizontal"&gt;
  
      &lt;RelativeLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:background="@android:drawable/dialog_holo_light_frame"
          android:padding="4dp"&gt;
  
          &lt;android.support.v7.widget.CardView
              android:layout_width="match_parent"
              android:layout_height="wrap_content"&gt;
  
              &lt;RelativeLayout
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:paddingBottom="10dp"
                  android:orientation="vertical"&gt;
  
  
                  &lt;android.support.v7.widget.RecyclerView
                      android:id="@+id/recyclerViewQuestions"
                      android:layout_below="@id/dottedHorizontalRule"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content" /&gt;
  
              &lt;/RelativeLayout&gt;
          &lt;/android.support.v7.widget.CardView&gt;
      &lt;/RelativeLayout&gt;
  &lt;/RelativeLayout&gt;
  </code></pre>