我是android的新手。我正在尝试实现Swipeable选项卡视图。创建了3个标签: 1.总结 2.统计数据 3.地图
现在问题是标签工作正常。当我从Summary-> Stats移动时,它很好。统计 - >地图,地图 - >统计数据也很好。但是,当我从Stats-> Summary或Maps-> Summary(第二次到达摘要片段)移动,然后在到达摘要后,我移动到任何标签,即Summary-> Stats或Summary-&gt ;地图,应用程序崩溃!!我无法理解为什么? 这是我现在编码的内容:
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;
}
}