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

实现效果图:

源码:

布局文件:activity_main:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="@android:color/white"> </RelativeLayout>

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

<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity" > <TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="欢迎收看体育新闻..."
android:textSize="20sp"
android:textColor="@android:color/holo_blue_dark"/> <RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> </LinearLayout>

f2.xml(娱乐新闻):

<LinearLayout 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"
tools:context=".MainActivity" > <TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="欢迎收看娱乐新闻..."
android:textColor="@android:color/holo_green_dark"
android:textSize="20sp" /> </LinearLayout>

f3.xml(军事新闻):

<LinearLayout 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"
tools:context=".MainActivity" > <TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="欢迎收看军事新闻..."
android:textColor="@android:color/holo_orange_dark"
android:textSize="20sp" /> </LinearLayout>

代码文件:

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;
}
}

源码下载:

点击下载源代码

Android actionBar与Fragment结合使用Demo2的更多相关文章

  1. Android ActionBar详解

    Android ActionBar详解 分类: Android2014-04-30 15:23 1094人阅读 评论(0) 收藏 举报 androidActionBar   目录(?)[+]   第4 ...

  2. 详解Android ActionBar之二:ActionBar添加Tabs标签和下拉导航

    本节主要讲解ActionBar如何添加Tabs标签和下拉导航. 一.添加标签 Tabs 在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重 ...

  3. Android ActionBar(转)

    本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用“返回/向上”程 ...

  4. Android ActionBar详解(二):ActionBar实现Tabs标签以及下拉导航

    一.添加标签 Tabs   在ActionBar中实现标签页可以实现android.app.ActionBar.TabListener ,重写onTabSelected.onTabUnselected ...

  5. Android ActionBar应用实战,高仿微信主界面的设计

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/26365683 经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对 ...

  6. Android ActionBar完全解析,使用官方推荐的最佳导航栏(下) .

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...

  7. Android 原生 Android ActionBar Tab (滑动)导航

    本文内容 环境 项目结构 演示一:ActionBar Tab 导航 演示二:ActionBar Tab 带滑动导航 本文演示 Tab 导航.第一个演示,是基本的 Tab 导航,第二个是带滑动的 Tab ...

  8. Android 原生 Android ActionBar

    本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用"返回 ...

  9. Android Actionbar Tab 导航模式

    Android Actionbar Tab 下图中,红色矩形圈起来的就是我们 ActionBar Tab,下面我们将一步一步的实现下图中的效果. 初次尝试 package com.example.it ...

随机推荐

  1. linux中的文件编码及编码修改

    查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式. 如果你只是想查看其它编码格式的文件或者想 ...

  2. hdu 4557 暴力

    题意: 作为2013年699万应届毕业生中的一员,由于宏观经济的不景气,小明在毕业当天就华丽丽地失业了! 经历了千难万苦的求职过程,小明特别能理解毕业生的就业之难,所以,他现在准备创建一家专门针对IT ...

  3. 关于JBoss日志中的报错Exception in thread "AWT-EventQueue-0"的解决记录

    一.前情提要 操作系统:Windows Server 2008 R2,JDK版本:1.6.0_45,应用容器:JBoss 4.2.3 GA.所部署的应用均为Web型项目,没有任何图形相关的项目. 二. ...

  4. 【NOIP2014】联合权值 树上dp

    题目描述 Description 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i   ,每条边的长度均为1 .图上两点( u ,  v ) 的距离定 ...

  5. MySQL DB 主从复制之SSL

    需求架构 准备工作 主从服务器时间同步 # 主从服务器同时配置crontab任务,与NTP服务器同步时间即可 */5 * * * * ntpdate 172.16.0.1 &>/dev/ ...

  6. Git_分支管理策略

    通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的comm ...

  7. How To Allow Blocked Content on Internet Explorer

    Follow the steps below if you are tired of having to "Enable Blocked Content" in IE each t ...

  8. cocos2d-x项目101次相遇:使用触摸事件移动 精灵

    cocos2d-x 101次相遇 / 文件夹  1   安装和环境搭建 -xcode  2   Scenes , Director, Layers, Sprites 3   建立图片菜单  4   在 ...

  9. linux内核 asmlinkage宏

    http://blog.chinaunix.net/uid-7390305-id-2057287.html

  10. Unity知识结构总结

    前言 本篇以知识结构图的形式对Unity引擎的常用基础知识内容进行了总结和梳理. 如果你学了一点关于Unity引擎的知识,又觉得太杂乱,那么希望本篇会给你一些帮助. 对应引擎版本:Unity  4.6 ...