i am developing an android app which has four fragments with tablayout and each fragment has connection error dialog box.
- first problem is,when i start my app,four fragments work simultaneously at the same time.So,when i occur connection error four dialog boxes are shown in first fragment When i switch to second tab it doesn't show his dialog box because his dialog is shown in first fragment.
- second problem is,i create that fragments with swipe refresh layout to fetch data from server.I call onRefresh method in onCreate method. when i start my app,first fragment data is loaded from server but when i switch first tab to second tab,it is not loaded his data from server but when i switch first tab to third tab,it is work. Also,when i switch second tab to third tab,it is not loaded data from server but when i switch second tab to fourth tab,it is work. It is only work when i switch tabs with one tab differ. Is there anyway to solve that problems.
I searched this problems from internet but i didn't get my problems answer. Please anyone help me.Thanks in advance..... Sorry for my poor english
this is tablyout code
viewPager = (ViewPager) findViewById(R.id.viewpagerMain);
tabLayout = (TabLayout) findViewById(R.id.tablayoutMain);
tabLayout.addTab(tabLayout.newTab().setText("Noticeboard"));
tabLayout.addTab(tabLayout.newTab().setText("News"));
tabLayout.addTab(tabLayout.newTab().setText("Events"));
tabLayout.addTab(tabLayout.newTab().setText("Result"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
viewPager.setAdapter(new MyAdapter(getSupportFragmentManager(), tabLayout.getTabCount()));
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
viewPager.setOffscreenPageLimit(0);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
This is MyAdapter class
class MyAdapter extends FragmentStatePagerAdapter {
int num_of_tab;
public MyAdapter(FragmentManager fm, int num_of_tab) {
super(fm);
this.num_of_tab = num_of_tab;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
NoticeBoardFragment noticeBoardFragment = new NoticeBoardFragment();
return noticeBoardFragment;
case 1:
NewsFragment newsFragment = new NewsFragment();
return newsFragment;
case 2:
EventsFragment eventsFragment = new EventsFragment();
return eventsFragment;
case 3:
ResultFragment resultFragment = new ResultFragment();
return resultFragment;
default:
return null;
}
}
@Override
public int getCount() {
return num_of_tab;
}
}