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());
        }
    }
  • 相关阅读:
    115.子集和的目标值(大数据的01背包)
    116. 张程易,编程易(01背包)
    110.科技庄园(多重背包)(未结题)
    113.失恋28天-缝补礼物(多重背包)
    109.关路灯(区间dp)
    107.01背包变式题型:传纸条
    cojs.tk(所有题目来源) 树状数组专练
    在线评测的网站
    108.方格取数
    106.运输装备(二维01背包)
  • 原文地址:https://www.cnblogs.com/wuyou/p/3704105.html
Copyright © 2011-2022 走看看