title: Tab+ViewPager not updating instead shows weird warning expected state 3 found 2
body: <p><em>I have a mainactivity which includes a TabLayout with ViewPager</em></p>
  
  <p><em>I have added 3 tabs and each tab has separate fragments which contains a recyclerview, and these recyclerviews has a checkbox that should be simultaneously updated/refreshed whenever i swipe the viewpager(i save checked positions in shared preference and updates via shared preference).</em> </p>
  
  <p><strong>My problem here is whenever i check a checkbox in tab1, tab2 is not updating/refreshing until i scroll down the Recyclerview. and tab3 is working fine.</strong>
  and <strong>i am getting a weird warning in logcat too.</strong></p>
  
  <pre><code> 03-05 09:35:53.345 4317-4327/com.example.rubin W/art: Suspending all threads took: 6.805ms
      03-05 09:35:58.310 4317-4317/com.example.rubin W/FragmentManager: moveToState: Fragment state for Tab3{10a5f1f0 #2 id=0x7f0d00b6} not updated inline; expected state 3 found 2
      03-05 09:36:01.363 4317-4317/com.example.rubin W/FragmentManager: moveToState: Fragment state for Tab1{2d9aa887 #1 id=0x7f0d00b6} not updated inline; expected state 3 found 2 
  </code></pre>
  
  <p>My PagerAdapter</p>
  
  <pre><code>public class PagerAdapter1 extends FragmentStatePagerAdapter {
      int mNumOfTabs;
      public PagerAdapter1(FragmentManager fm, int NumOfTabs) {
          super(fm);
          this.mNumOfTabs = NumOfTabs;
      }
      @Override
      public Fragment getItem(int position) {
          switch (position) {
              case 0:
                 return new Tab1();
              case 1:
                 return new Tab2();
              case 2:
                 return new Tab3();
  
              default:
                  return null;
  
          }
      }
  
      @Override
      public int getCount() {
          return mNumOfTabs;
      }
  }
  </code></pre>
  
  <p>Tablayout OnPageChangelistener</p>
  
  <pre><code>final PagerAdapter1 adapter = new PagerAdapter1
                  (getSupportFragmentManager(), tabLayout1.getTabCount(), getApplicationContext());
          viewPager1.setAdapter(adapter);
          viewPager1.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout1));
          tabLayout1.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
              @Override
              public void onTabSelected(TabLayout.Tab tab) {
                  viewPager1.setCurrentItem(tab.getPosition());
                  adapter.notifyDataSetChanged();
              }
  
              @Override
              public void onTabUnselected(TabLayout.Tab tab) {
  
              }
  
              @Override
              public void onTabReselected(TabLayout.Tab tab) {
              }
          });
      }
  </code></pre>
  
  <p>code for each fragments.</p>
  
  <pre><code> public class Tab1 extends Fragment {
  
          @Override
          public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
              View v = inflater.inflate(R.layout.home_tab1_recycler, container, false);
              RecyclerView rv = (RecyclerView) v.findViewById(R.id.home_recyclerview);   
              LinearLayoutManager llm = new LinearLayoutManager(getContext());
              rv.setLayoutManager(llm);
              rv.setHasFixedSize(true); // to improve performance
              rv.setAdapter(new HomeManager()); // the projectdatabase manager is assigner to the RV
              return v;
          }
  
          public class HomeManager extends RecyclerView.Adapter&lt;HomeManager.RecyclerViewHolder&gt; {
      int Length,h;
   View v1;
          ArrayList&lt;String&gt; PROJECT_ID = new ArrayList&lt;String&gt;();
  Set&lt;String&gt; set;
          List&lt;String&gt; selected;
       public class RecyclerViewHolder extends RecyclerView.ViewHolder {
       CheckBox mCheck;
        RecyclerViewHolder(final View itemView) {
                      super(itemView);
        mCheck = (CheckBox) itemView.findViewById(R.id.PROJECT_fav);
       SharedPreferences pref = getContext().getSharedPreferences("MirSP", Context.MODE_PRIVATE);
                      set = pref.getStringSet("FAV", null);
        if (set != null) {
                          selected = new ArrayList&lt;String&gt;(set);
                      } else {
                          selected = new ArrayList&lt;String&gt;();
                      }
      mCheck.setOnClickListener(new View.OnClickListener() {
                          @Override
                          public void onClick(View v) {
       h = getAdapterPosition();
      check = PROJECT_ID.get(h); // for saving the project id from json.
       if (selected.contains(check)) {
                                      selected.remove(check);
                                      mCheck.setBackgroundResource(R.drawable.ic_favorite_white1_24dp);
                                      Snackbar snackbar = Snackbar.make(v, "Property Unfavorited", Snackbar.LENGTH_SHORT);
                                      snackbar.show();
                                  } else {
                                      selected.add(check);
                                      mCheck.setBackgroundResource(R.drawable.ic_favorite_white_24dp);
                                      Snackbar snackbar = Snackbar.make(v, "Property Favorited", Snackbar.LENGTH_SHORT);
                                      snackbar.show();
  
                                  }
                                  Log.e("HF update checked", String.valueOf(selected));
                                  Set&lt;String&gt; set = new HashSet&lt;String&gt;();
                                  set.addAll(selected);
                                  SharedPreferences pref = getContext().getSharedPreferences("MirSP", Context.MODE_PRIVATE);
                                  SharedPreferences.Editor editor = pref.edit();
                                  editor.putStringSet("FAV", set);
                                  editor.commit();
                              }
           }
                      });
       @Override
              public RecyclerViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
                  v1 = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_item, viewGroup, false);
                  return new RecyclerViewHolder(v1);
              }
  
              @Override
              public void onBindViewHolder(final RecyclerViewHolder viewHolder, int i) {
      SharedPreferences pref = getContext().getSharedPreferences("MirSP", Context.MODE_PRIVATE);
                  set = pref.getStringSet("FAV", null);
                  if (set != null) {
                      selected = new ArrayList&lt;String&gt;(set);
                  } else {
                      selected = new ArrayList&lt;String&gt;();
                  }
                  Log.e("HF update UI", String.valueOf(selected));
      if (String.valueOf(selected).contains(String.valueOf(PROJECT_ID.get(i)))) {
                          viewHolder.mCheck.setBackgroundResource(R.drawable.ic_favorite_white_24dp);
                      } else {
                          viewHolder.mCheck.setBackgroundResource(R.drawable.ic_favorite_white1_24dp);
                      }
                  }
       @Override
              public int getItemCount() {
                  //Code for Total length of json
                  return Length;
              }
  </code></pre>