2016-03-31 5 views
1

私はtab layoutと同じfragmentの4 instancesを持っていますが、listのデータは異なります。そしてcurrent pageを取得したいので、タイトルを使用してdataを変更することができます。問題は、mViewPager.getCurrentItem())methodが必ずしも呼び出されるとは限りません。 oncreateviewセクションページアダプタgetCurrentItemのタイトル

私が持っている:

jours2 = new ArrayList<>(); 
rv = (RecyclerView) rootView.findViewById(R.id.recyclerView); 
rv.setLayoutManager(new LinearLayoutManager(getContext())); 

adapter = new MyAdapter(jours2); 
rv.setAdapter(adapter); 
String test= mSectionsPagerAdapter.getPageTitle(mViewPager.getCurrentItem()).toString(); 

for (Cours c : jours) 
{ 


    if (c.jour==test) 
    { 
     jours2.add(c); 

    } 
} 
adapter.notifyDataSetChanged(); 

それは常にcurrentアイテムtitleを得るように、私は私は私のコードを変更することができます。

SectionPageAdapter:

public class SectionsPagerAdapter extends FragmentPagerAdapter { 
    ArrayList<Fragment> fragments = new ArrayList<>(); 
    ArrayList<String> titles = new ArrayList<>(); 
    public SectionsPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 
    public void AddFragment(Fragment fragment,String title) 
    { 
     fragments.add(fragment); 
     titles.add(title); 
    } 
    @Override 
    public Fragment getItem(int position) { 
     // getItem is called to instantiate the fragment for the given page. 
     // Return a PlaceholderFragment (defined as a static inner class below). 
     return fragments.get(position); 


    } 

    @Override 
    public int getCount() { 
     // Show 3 total pages. 
     return fragments.size(); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return titles.get(position); 
    } 
} 
+0

mSectionPagerAdapterコードを投稿してください。 –

+0

@RaviTeja私の回答を更新しました。 – yoyani

答えて

0

あなたが位置

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 
       tab.getPosition();  
      } 

      @Override 
      public void onTabUnselected(TabLayout.Tab tab) { 

      } 

      @Override 
      public void onTabReselected(TabLayout.Tab tab) { 

      } 
     }); 

か、単にtabLayout.getSelectedTabPosition()を使用することができますを取得するためにこれを使用することができます。