actionBar的tab标签应用以及TabListener的方法详解

package com.example.actionBarTest.actionBarTab;

import android.app.*;
import android.os.Bundle;
import com.example.actionBarTest.R; import java.util.ArrayList;
import java.util.List; /**
* Created by Heyiyong on 2014-5-2 上午9:26.
*/
public class TabActivity extends Activity implements ActionBar.TabListener {
private List<Fragment> fragments; public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_main); //这些都是普通的fragment,里边只包含一个textView
HomeFragment homeFragment = new HomeFragment();
MusicFragment musicFragment = new MusicFragment();
VideoFragment videoFragment = new VideoFragment();
fragments = new ArrayList<Fragment>();
fragments.add(homeFragment);
fragments.add(musicFragment);
fragments.add(videoFragment); ActionBar actionBar = getActionBar();
if (actionBar != null) {
//设置actionBar为tabs模式
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//添加几个标签,并设置点击监听事件
actionBar.addTab(actionBar.newTab().setText("主页").setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("音乐").setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("视频").setTabListener(this));
} } /**
* 当一个标签被选择的时候会调用该方法
* @param tab 点击选择的标签
*/
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
getFragmentManager().beginTransaction().replace(R.id.tab_main, fragments.get(tab.getPosition())).commit();
} /**
* 当你选择了另外一个标签,之前的标签就会被unselected,于是这个方法就会被调用
* 例如,你当前的标签下标为0,现在选择了下标为1的标签,那么这个方法会调用,并且传入的参数tab是原先的标签对象
* @param tab 原先的标签对象
*/
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
System.out.println("onTabUnselected Position = " + tab.getPosition());
} /**
* 重复选择当前的标签,会调用此方法。
* 例如:当前标签为第二个,当你用手指又点了第二个,就会调用此方法
* @param tab 当前的标签对象
*/
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
System.out.println("onTabReselected position = " + tab.getPosition());
}
}

Android ActionBar 关于tab的应用 以及 TabListener的方法详解的更多相关文章

  1. [转]Android调用so文件(C代码库)方法详解

    一.为什么调用c的dll要用源码编译成so库 Android系统是基于linux内核的移动终端系统,而dll是在windows环境下生成和调用的c库,所以不可以直接为android系统调用. 二.安装 ...

  2. Android为TV端助力 MediaPlayer API大全已经方法详解(转载)

    通过这张图,我们可以知道一个MediaPlayer对象有以下的状态: 1)当一个MediaPlayer对象被刚刚用new操作符创建或是调用了reset()方法后,它就处于Idle状态.当调用了rele ...

  3. Android四大组件之——Activity的生命周期(图文详解)

        转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:JohnTsai.Work@gmail.com       [Andro ...

  4. Android源码下载方法详解

    转自:http://www.cnblogs.com/anakin/archive/2011/12/20/2295276.html Android源码下载方法详解 相信很多下载过内核的人都对这个很熟悉 ...

  5. android emulator启动的两种方法详解

    android emulator启动的两种方法详解    转https://blog.csdn.net/TTS_Kevin/article/details/7452237 对于android学习者,模 ...

  6. Android——onCreate( )方法详解(转)

    android开发之onCreate( )方法详解 onCreate( )方法是android应用程序中最常见的方法之一,那么,我们在使用onCreate()方法的时候应该注意哪些问题呢? 先看看Go ...

  7. Android编程之LayoutInflater的inflate方法详解

    LayoutInflater的inflate方法,在fragment的onCreateView方法中经常用到: public View onCreateView(LayoutInflater infl ...

  8. Android零基础入门第19节:Button使用详解

    原文:Android零基础入门第19节:Button使用详解 Button(按钮)是Android开发中使用非常频繁的组件,主要是在UI界面上生成一个按钮,该按钮可以供用户单击,当用户单击按钮时,按钮 ...

  9. Android零基础入门第80节:Intent 属性详解(下)

    上一期学习了Intent的前三个属性,本期接着学习其余四个属性,以及Android系统常用内置组件的启动. 四.Data和Type属性 Data属性通常用于向Action属性提供操作的数据.Data属 ...

随机推荐

  1. 使用原生Sql查询实现按分类推送最新文章到首页

    一般在网站的首页都会有网站最新文章的推送,而这些文章又属于不同的分类.如果某个分类的文章突然集中在一个时间段发布,那么就会造成首页上所有文章都是该分类的文章,其他的文章分类就变成不可见的了.所以,我希 ...

  2. 《Java核心技术与最佳实践》读书笔记

    第一章 Java7新语法 1.switch中使用字符串 2.增加二进制表示0b10101010:数字字面量允许直径使用下划线12_34_90 3.一个catch字句捕获多个异常,多个异常之间用|分隔 ...

  3. MongoDB五种树形结构表示法

    MongoDB五种树形结构表示法 第一种:父链接结构 db.categories.insert( { _id: "MongoDB", parent: "Databases ...

  4. linux服务器修改ssh默认22端口方法

    1.登录服务器,打开sshd_config文件 # vim /etc/ssh/sshd_config 2.找到#Port 22,默认是注释掉的,先把前面的#号去掉,再插入一行设置成你想要的端口号,注意 ...

  5. Apache 的 Rewrite 规则详细介绍

    Rewrite标志: R[=code](force redirect) 强制外部重定向 F(force URL to be forbidden) 禁用URL,返回403HTTP状态码 G(force ...

  6. 团队自动化环境搭建与管理--php博弈

    我是方少,很开心与大家日后与大家交流技术上面的一些想法和一些业务上的分享.以前从来没写过博客,因为觉得不重要吧,如今觉得有必要沉淀一些想法和回忆.好了费话不多说. 先上图: 业务问题:在每次新伙伴加入 ...

  7. [转]MAC下JDK版本的切换

    系统里之前先安装里jdk6的,后台又装里7,安装完成后,java -version 版本是7,  导致我eclipse打不开,一开始的做法是,把7的版本给删除掉. 删除的方法也很简单,在命令行中到 / ...

  8. WPF中的瀑布流布局(TilePanel)控件

    最近在用wpf做一个metro风格的程序,需要用到win8风格的布局容器,只能自己写一个了.效果如下 用法 : <local:TilePanel                          ...

  9. 【转】Web标准中的常见问题

    本文转自http://www.tracefact.net/Misc/Common-Problems-Of-Web-Standard.aspx 引言 大概在2004年的时候,Web标准的概念藉由一本名为 ...

  10. Mininet安装及使用

    最简单的方法是开始 下载一个预包装Mininet / Ubuntu VM . 这个虚拟机包括Mininet本身,所有预装OpenFlow二进制文件和工具,调整内核配置,以支持更大的Mininet网络. ...