Android开发之ActionBar组合Fragment的导航功能的使用(源代码分享)

Android开发之ActionBar结合Fragment的导航功能的使用(源代码分享)

      标签在操作栏方便用户去探索,在你的应用程序在不同视图之间切换。ActionBar提供的标签是最理想的选择,因为他们适应不同的屏幕尺寸。一旦你确定了Fragment出现在布局里,添加标签的步骤如下:一:继承ActionBar.TabListener接口,控制哪个标签被选中,进而切换布局;二:对于每一个您想要添加标签,实例化一个ActionBar,选项卡调用setTabListener TabListener(),此外还可设置标签的标题和的setText()(和一个图标setIcon())等等;三:addTab();

MainActivity的源代码如下

package com.example.f19_fragment07;

import android.os.Bundle;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.Activity;
import android.app.FragmentTransaction;


public class MainActivity extends Activity implements TabListener {
	private ActionBar actionBar;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		actionBar = getActionBar();
		actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//必须要有这个方法设置其属性
		actionBar.setDisplayShowTitleEnabled(false);
		ActionBar.Tab tab = actionBar.newTab().setText("信息管理")
				.setIcon(R.drawable.a).setTabListener(this).setTag("1");
		ActionBar.Tab tab2 = actionBar.newTab().setText("运动管理")
				.setIcon(R.drawable.a).setTabListener(this).setTag("2");
		ActionBar.Tab tab3 = actionBar.newTab().setText("系统管理")
				.setIcon(R.drawable.a).setTabListener(this).setTag("3");
		actionBar.addTab(tab);
		actionBar.addTab(tab2);
		actionBar.addTab(tab3);

	}

	@Override
	public void onTabSelected(Tab tab, FragmentTransaction ft) {
		// TODO Auto-generated method stub
		//通过标签来做识别,是哪个tab被调用了
		int flag=Integer.parseInt(tab.getTag().toString());
		switch (flag) {
		case 1:
			AFragment fragment=new AFragment();
            ft.replace(R.id.main, fragment);
			// 不用使用commit方法提交,其不能使用回退栈机制返回,这里很容易出错
			
			break;

		case 2:

			break;
		case 3:

			break;
		}

	}

	@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

	}

}