最近终于能上google了,再看android源码,发现android新版本多了v7库。根据官方的demo,自己试着使用了一下。
话不多说,上代码:
package com.example.drawerdemo;
import java.util.ArrayList;
import java.util.List;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.Tab;
import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity implements ActionBar.TabListener{
private static int TOTAL_COUNT = 5;// 标题数量
private ViewPager mViewPager;
private ActionBar actionBar;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
setContentView(R.layout.activity_main);
// PagerTabStrip mPagerTabStrip=(PagerTabStrip) findViewById(R.id.pager_tabstrip);
//设置导航条的颜色
// mPagerTabStrip.setTabIndicatorColorResource(android.R.color.white);
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mViewPager = (ViewPager) findViewById(R.id.view_pager_demo);
ArrayList<Fragment> fragmentList = new ArrayList<Fragment>();//ViewPager中显示的数据
ArrayList<String> titleList = new ArrayList<String>();// 标题数据
//添加数据
for (int i = 0; i < TOTAL_COUNT; i++) {
ViewPagerFragment mViewPagerFragment = new ViewPagerFragment();
Bundle bundle = new Bundle();
// bundle.putInt("upImageId", R.drawable.banner1);// 图片
bundle.putString("text", "Page " + i);// 文字
mViewPagerFragment.setArguments(bundle);// 设置参数
titleList.add("Title " + (i+1));
fragmentList.add(mViewPagerFragment);
}
mViewPager.setAdapter(new MyPagerFragmentAdapter(
getSupportFragmentManager(), fragmentList, titleList));
actionBar.addTab(actionBar.newTab().setText("Title " + 1).setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("Title " + 2).setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("Title " + 3).setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("Title " + 4).setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("Title " + 5).setTabListener(this));
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
actionBar.setSelectedNavigationItem(position);
}
});
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_search:
openSearch();
return true;
case R.id.action_settings:
openSettings();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void openSearch() {
// TODO Auto-generated method stub
}
private void openSettings() {
// TODO Auto-generated method stub
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
// return true;
}
//适配器
private class MyPagerFragmentAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
private List<String> titleList;
public MyPagerFragmentAdapter(FragmentManager fm,
List<Fragment> fragmentList, List<String> titleList) {
super(fm);
this.fragmentList = fragmentList;
this.titleList = titleList;
}
// ViewPage中显示的内容
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return (fragmentList == null || fragmentList.size() == 0) ? null
: fragmentList.get(arg0);
}
// // Title中显示的内容
// @Override
// public CharSequence getPageTitle(int position) {
// // TODO Auto-generated method stub
// return (titleList.size() > position) ? titleList.get(position) : "";
// }
@Override
public int getCount() {
// TODO Auto-generated method stub
return fragmentList == null ? 0 : fragmentList.size();
}
}
/** 使用Fragment显示ViewPager中的主要内容 */
public static class ViewPagerFragment extends Fragment {
public ViewPagerFragment() {
super();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tab1,
container, false);
TextView tv = (TextView) view.findViewById(R.id.textView1);
// ImageView image = (ImageView) view
// .findViewById(R.id.view_pager_image);
Bundle bundle = getArguments();
tv.setText(bundle.getString("text"));
// if (bundle != null) {
// //设置图片
// int upImageId = bundle.getInt("upImageId");
// if (upImageId != 0) {
// image.setImageResource(upImageId);
// }
// //设置文字
// String text = bundle.getString("text");
// tv.setText(text);
// }
return view;
}
}
// TODO Auto-generated method stub
@Override
public void onTabSelected(Tab arg0,
android.support.v4.app.FragmentTransaction arg1) {
// TODO Auto-generated method stub
mViewPager.setCurrentItem(arg0.getPosition());
}
@Override
public void onTabUnselected(Tab arg0,
android.support.v4.app.FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
@Override
public void onTabReselected(Tab arg0,
android.support.v4.app.FragmentTransaction arg1) {
// TODO Auto-generated method stub
}
}