上一篇文章介绍了ActionBar的使用,这里介绍ActionBar的还有一种用法。达到的效果和曾经的GroupActivity或TabHost是一样的,可作为导航来使用。

实现效果图:

Android actionBar与Fragment结合使用Demo2

源码:

Android actionBar与Fragment结合使用Demo2

布局文件:activity_main:


f1.xml(体育新闻相应的布局文件):


f2.xml(娱乐新闻):


f3.xml(军事新闻):


代码文件:

MainActivity:

package com.fragmentdemo10_actionbar;

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

public class MainActivity extends Activity {
	private ActionBar actionBar;
	/**
	 * 设置三个整型常量。分别为0,1,2;分别相应 :运动新闻、娱乐新闻、军事新闻。
	 */
	private final int SPORTS = 0;
	private final int ENTERTAINMENT = 1;
	private final int MILITARY = 2;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		actionBar = getActionBar();
		// 设置ActionBar的导航模式
		actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

		actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
		/**
		 * 加入三个tab,分别为:体育新闻,娱乐新闻,军事新闻。

*/ actionBar.addTab(actionBar.newTab().setText("体育新闻") .setIcon(R.drawable.ic_launcher) .setTabListener(new MyTabListener()).setTag(SPORTS)); actionBar.addTab(actionBar.newTab().setText("娱乐新闻") .setIcon(R.drawable.ic_launcher) .setTabListener(new MyTabListener()).setTag(ENTERTAINMENT)); actionBar.addTab(actionBar.newTab().setText("军事新闻") .setIcon(R.drawable.ic_launcher) .setTabListener(new MyTabListener()).setTag(MILITARY)); } class MyTabListener implements TabListener { @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { switch (Integer.parseInt(tab.getTag().toString())) { /** * 相应体育新闻 */ case SPORTS: ft.replace(R.id.main, new FragementA()); break; /** * 相应娱乐新闻 */ case ENTERTAINMENT: ft.replace(R.id.main, new FragementB()); break; /** * 相应军事新闻 */ case MILITARY: ft.replace(R.id.main, new FragementC()); break; default: break; } } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } } }

FragmentA(Tab体育新闻相应的Fragment):
package com.fragmentdemo10_actionbar;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
 * Tab体育新闻相应的Fragment
 *
 */
public class FragementA extends Fragment {
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View view = inflater.inflate(R.layout.f1, null);
		return view;
	}
}
FragmentB(Tab娱乐新闻相应的Fragment):
package com.fragmentdemo10_actionbar;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
 * TAB娱乐新闻相应的Fragment
 *
 */
public class FragementB extends Fragment {
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View view = inflater.inflate(R.layout.f2, null);
		return view;
	}
}
FragmentC(Tab军事新闻相应的Fragment):
package com.fragmentdemo10_actionbar;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
 * TAB军事新闻相应的Fragment
 *
 */
public class FragementC extends Fragment {
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View view = inflater.inflate(R.layout.f3, null);
		return view;
	}
}

源码下载:

点击下载源代码

相关文章:

  • 2021-07-10
  • 2022-12-23
  • 2021-07-22
  • 2021-09-13
  • 2022-02-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-23
  • 2021-04-05
  • 2021-09-24
相关资源
相似解决方案