I am a newbie to android. I am trying to implement Swipeable tab views. Have created 3 tabs : 1. Summary 2. Stats 3. Maps
Now the thing is the tabs are working fine. When I move from Summary->Stats, it is fine. Stats->Maps, Maps->Stats is also fine. But when I move from Stats->Summary or Maps->Summary (arriving at the summary fragment 2nd time), and then after arriving at the summary I move to any of the tabs i.e. Summary->Stats or Summary->Maps, the application crashes !! I am not able to understand why ? Here is what I have coded uptill now :
viewPager=(ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(new MyAdapter(getSupportFragmentManager()));
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener()
{
@Override
public void onPageSelected(int arg0)
{
// TODO Auto-generated method stub
actionbar.setSelectedNavigationItem(arg0);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
actionbar = getActionBar();
actionbar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#26C6DA")));
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab summary=actionbar.newTab();
summary.setText("SUMMARY");
summary.setTabListener(this);
ActionBar.Tab stats=actionbar.newTab();
stats.setText("STATS");
stats.setTabListener(this);
ActionBar.Tab maps=actionbar.newTab();
maps.setText("MAPS");
maps.setTabListener(this);
actionbar.addTab(summary);
actionbar.addTab(stats);
actionbar.addTab(maps);
<-- Some Code -->
//
//
//
//
//
//
//
//
//
<--Some Code ends-->
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft)
{
// TODO Auto-generated method stub
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft)
{
// TODO Auto-generated method stub
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft)
{
// TODO Auto-generated method stub
}
}
class MyAdapter extends FragmentPagerAdapter
{
public MyAdapter(FragmentManager fm)
{
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int arg0)
{
// TODO Auto-generated method stub
if(arg0==0)
{
return new SummaryFragment();
}
if(arg0==1)
{
return new StatsFragment();
}
if(arg0==2)
{
return new MapsFragment();
}
return null;
}
@Override
public int getCount()
{
// TODO Auto-generated method stub
return 3;
}
}