2017-08-24 20 views
0

1つのアクティビティに4つのフラグメントがあります。すべてのフラグメントの変更時に、フラグメントごとにJSONデータをロードするため、フラグメントがリフレッシュされるようにする必要があります。 (SickClass.java)私はSickClassを作成し、私はSickAdapterを呼び出して、私は爆発する私のクラスではFragmentPagerAdapterのフラグメントをリフレッシュする方法

public class SickAdapter extends FragmentPagerAdapter{ 

    private static final String TAG = SickAdapter.class.getSimpleName(); 

    private static final int FRAGMENT_COUNT = 4; 

    public SickAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     switch (position){ 
      case 0: 
       return new SickFragmentToAll(); 
      case 1: 
       return new SickFragmentToPending(); 
      case 2: 
       return new SickFragmentToApproved(); 
      case 3: 
       return new SickFragmentToDenied(); 
     } 
     return null; 
    } 

    @Override 
    public int getCount() { 
     return FRAGMENT_COUNT; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     switch (position){ 
      case 0: 
       return "All"; 
      case 1: 
       return "Pending"; 
      case 2: 
       return "Approved"; 
      case 3: 
       return "Denied"; 
     } 
     return null; 
    } 
} 

:私はこれは私のアダプター(SickAdapter.java)である

表示データにコードをFragmentPagerアダプタとRecyclerViewを使用しますそれらは私のコードです

public class SickClass extends Fragment { 

    private static final String TAG = SickClass.class.getSimpleName(); 

    private SickAdapter mAdapter; 
    private TabLayout tabLayout; 
    private ViewPager viewPager; 


    public SickClass() { 
    } 

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.employee_leave_class, container, false); 

     tabLayout = (TabLayout)view.findViewById(R.id.tabs); 
     viewPager = (ViewPager)view.findViewById(R.id.view_pager); 

     if(mAdapter == null) { 
      mAdapter = new SickAdapter(getChildFragmentManager()); 
     } 
     viewPager.setAdapter(new SickAdapter(getChildFragmentManager())); 
     tabLayout.setupWithViewPager(viewPager); 
     viewPager.setCurrentItem(1, true); 

     tabLayout.post(new Runnable() { 
      @Override 
      public void run() { 
       tabLayout.setupWithViewPager(viewPager); 
      } 
     }); 

     return view; 
    } 

} 
+0

使用は ' –

答えて

0

フラグメントをリロードするには、次のコードを試してください。

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    ft.detach(YOUR_FRAGMENT_NAME.this).attach(YOUR_FRAGMENT_NAME.this).commit(); 
+0

をFragmentStatePagerAdapter'? –

+0

フラグメントクラスで、再ロードする場所 –

+0

私に例を挙げることはできますか? –

関連する問題