1

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;
    }

}
TechFrk
  • 185
  • 2
  • 2
  • 15

0 Answers0