public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
private ViewPager mViewPager;
private MyAdapter mMyAdapter;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
setContentView(R.layout.activity_main);
final ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //设置模式为tab标签的样式
mViewPager=(ViewPager) findViewById(R.id.pager);
mMyAdapter=new MyAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mMyAdapter);
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener(){
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
super.onPageSelected(position);
Log.i("MainActivity", "-----setOnPageChangeListener"+position);
actionBar.setSelectedNavigationItem(position); //设置选中的标签
}
});
int count=mMyAdapter.getCount();
//设置有多少个tab
for(int i=0;i<count;i++){
actionBar.addTab(
actionBar.newTab()
.setText(mMyAdapter.getPageTitle(i))
.setTabListener(this));
}
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
//当tab被选中的时候触发
@Override
public void onTabSelected(Tab tab, FragmentTransaction arg1) {
// TODO Auto-generated method stub
Log.i("MainActivity", "-----onTabSelected"+tab.getPosition());
mViewPager.setCurrentItem(tab.getPosition()); //viewPager当前选择的是哪个页面
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
}
public class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int arg0) {
Log.i("MainActivity", "MyAdapter-----getItem()");
Fragment fragment=new DummySectionFragment(); //获取View page的显示页面信息
Bundle args = new Bundle();
args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, arg0 + 1);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
Log.i("MainActivity", "MyAdapter------getCount()");
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
Log.i("MainActivity", "MyAdapter------getPageTitle()"+position);
return "按钮"+(position+1);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
super.destroyItem(container, position, object);
Log.i("MainActivity", "MyAdapter------destroyItem()"+position);
}
}
public class DummySectionFragment extends Fragment {
public static final String ARG_SECTION_NUMBER = "section_number";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.i("MainActivity", "DummySectionFragment------onCreateView");
View rootView = inflater.inflate(R.layout.item, container, false);
Bundle args = getArguments();
((TextView) rootView.findViewById(android.R.id.text1)).setText(
getString(R.string.dummy_section_text, args.getInt(ARG_SECTION_NUMBER)));
return rootView;
}
}
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/pager"
>
</android.support.v4.view.ViewPager>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="24sp"
android:padding="32dp" />
最后记得在minfest.xml的application里面加上主题样式为:android:theme="@android:style/Theme.Holo.Light.DarkActionBar"