zoukankan      html  css  js  c++  java
  • Android ActionBar 关于tab的应用 以及 TabListener的方法详解

    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());
        }
    }
  • 相关阅读:
    linux 重新设置mysql密码
    php 一些个 常用 函数
    nginx php错误日志开启
    linux crontab 定时执行任务(php)
    聚合短信接口-- php
    Commons Collections1分析
    spring之 注解ioc&依赖注入 & spring整合mybatis
    Spring之 IOC&依赖注入
    java之 Mybatis(二)
    java之 MyBatis(一)
  • 原文地址:https://www.cnblogs.com/wuyou/p/3704105.html
Copyright © 2011-2022 走看看