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. 【风马一族_代码英语】代码英语之八 ADB

    adb wireless   无线调试  adb ---------------------------- preferences 首选项 ---------------------------- a ...

  2. 简单版解决IE兼容性问题

    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 在访问页面时, 如 ...

  3. php session偶尔写入失败的原因

    session_start(); var_dump($_SESSION); $key = sprintf('%05d', mt_rand(0, 99999)); $key = strval($key) ...

  4. 查找指定表的字段not null约束,并生成删除Sql

    SElECT 'ALTER TABLE '+OBJECT_NAME(c.parent_obj)+' DROP CONSTRAINT '+ c.name FROM sys.sysconstraints ...

  5. sql2012安装过程中出现个一个问题

    最近安装了一次SQLSERVER2012,遇到了一个小问题,截图如下: 就是上图中状态为失败的项,点开之后,会弹出下面的一个框: 在网上搜了之后,有了这样的答案: http://www.cnblogs ...

  6. objdump的使用方法和 symbol table的每列的含义

    一.objdump的用法 objdump命令的man手册 objdump     [-a] [-b bfname|     --target=bfdname] [-C] [--debugging]   ...

  7. 每日一“酷”之array

    array--国定类型数据序列 array模块定义一个序列数据结构,看起来和list非常相似,只不过所有成员都必须是相同的基本类型. 1.初始化 array实例化时可以提高一个参数来描述允许哪个种数据 ...

  8. oracle11g RAC添加节点

    OS: [root@rac ~]# more /etc/oracle-releaseOracle Linux Server release 5.7 DB: SQL> SELECT * FROM ...

  9. Splitter

    <!DOCTYPE html> <html> <head> <title>PDemo</title> </head> <b ...

  10. 栈帧%ebp,%esp详解

    首先应该明白,栈是从高地址向低地址延伸的.每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息.寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部( ...