上一篇文章介绍了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" ><TextViewandroid: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"/><RatingBarandroid: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" ><TextViewandroid: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" ><TextViewandroid: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;@Overrideprotected 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 {@Overridepublic 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 {@Overridepublic 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 {@Overridepublic 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完全解析,使用官方推荐的最佳导航栏(下) .

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

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

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

  3. Android ActionBar高级自定义——设置标题居中和添加控件

    转载地址:http://blog.csdn.net/gtbluesky/article/details/44656567 关于ActionBar的一些常见使用方法我已经在之前两篇博文(Android ...

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

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

  5. android action bar 风格,Android ActionBar使用教程

    ActionBar的引入方式: 有几种,从 Android 3.0(API lever 11) 开始,所有使用 Theme.Holo 主题(或者它的子类)的 Activity 都包含了 action ...

  6. Android开发之Fragment与Activity的数据交互通过回调机制实现(源代码分享)

    上一篇文章简单介绍了Android的回调机制的使用,这一篇博文将重点介绍Fragment碎片与activity的数据交互,fragment在Android开发中起着至关重要的作用,通过官方Androi ...

  7. 无法为新的Android ActionBar支持找到Theme.AppCompat.Light

    本文翻译自:Can't Find Theme.AppCompat.Light for New Android ActionBar Support I am trying to implement th ...

  8. 【Android】保存Fragment切换状态

    [Android]保存Fragment切换状态 前言 一般频繁切换Fragment会导致频繁的释放和创建,如果Fragment比较臃肿体验就非常不好了,这里分享一个方法. 声明 欢迎转载,但请保留文章 ...

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

    本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/guide/topics/ui/act ...

最新文章

  1. 改写URL的查询字符串QUERY_STRING(转)
  2. C. Little Girl and Maximum Sum【差分 / 贪心】
  3. phpgif图片包_php生成动态验证码gif图片
  4. VS2010中不可忽视的部分——VSTO
  5. php 仿电脑桌面系统,EonerCMS——做一个仿桌面系统的CMS(十-附最新源码)
  6. Linux查看与修改时区、时间的命令
  7. 最简单的基于FFmpeg的内存读写的例子:内存播放器
  8. 亿图图示edraw max mac版
  9. 51中断实验与流水灯protues仿真
  10. 风阻能发电装置叶片的动力学仿真
  11. 音视频处理、图像处理、图像识别和字符识别全能库JavaCV完整教程(包含完整JavaCV入门、JavaCV实战、ffmpeg、opencv和tesserac教程)
  12. 谈谈自我介绍与第一印象
  13. 飞凌ok6410一键烧写linux文件,飞凌OK6410-B Linux学习之一刷机过程
  14. oracle获取两个月前的时间
  15. 技术栈(technology stack)
  16. 【Wing Loss】《Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks》
  17. 网站打开速度与服务器的关系,网站打开速度慢对SEO的影响
  18. 连锁加盟2-3事~实录
  19. c语言的实验题答案,大一C语言上机实验试题及答案
  20. python面试自我介绍怎么介绍比较好_面试时三分钟自我介绍,需要注意哪些问题?...

热门文章

  1. python一般用什么编译器-Python常用编译器原理及特点解析
  2. python怎么安装pandas模块-python如何导入安装pandas模块并使用别名
  3. python能做什么游戏好-用Python可以做哪些有意思的小游戏呢?
  4. Ubuntu16.04打开和关闭桌面显示
  5. maven创建多模块项目
  6. zookeeper代码浅析
  7. 网络编程学习笔记(readv和writev函数)
  8. mysql之存储引擎的选择
  9. VC++ 文件和应用程序关联,默认图标不显示问题
  10. Java新手问题 02 面向对象基本功