actionBar活动条的使用2

为标题栏设置选项卡:

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;

public class MainActivity extends Activity implements TabListener {
    private ActionBar actionBar;
    private FragmentManager fragmentManager;
    private Fragment01 fragment01;//这里每个碎片显示一个简单的textview布局文件
    private Fragment02 fragment02;
    private Fragment03 fragment03;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fragmentManager = getFragmentManager();//打开碎片管理器
        //初始化fragment
        fragment01 = new  Fragment01();
        fragment02 = new  Fragment02();
        fragment03 = new  Fragment03();
        // 将fragment与actionbar的标题绑定

        actionBar = getActionBar();
        // 设置tab的样式,该样式为选项卡模式
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        // 给actionbar设置tab导航标题

        // 声名一个tab
        Tab newTab = actionBar.newTab();
        // 给tab设置一个标题
        newTab.setText("体育");
        //给tab设置tag
        newTab.setTag("体育");
        // tab必须有一个callback
        newTab.setTabListener(this);
        // 添加一个tab到actionbar
        actionBar.addTab(newTab);

        Tab newTab2 = actionBar.newTab();
        newTab2.setText("宝宝");
        newTab.setTag("宝宝");
        newTab2.setTabListener(this);
        actionBar.addTab(newTab2);

        Tab newTab3 = actionBar.newTab();
        newTab3.setText("女排");
        newTab.setTag("女排");
        newTab3.setTabListener(this);
        actionBar.addTab(newTab3);
        
    }

    /**
     * 当初次加载的时候,也会调用 当某个tab选中的时候调用
     */
    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // 获得被选中的索引
        int position = tab.getPosition();
        //打开事务
        FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
        Fragment fragment = null;
        switch (position) {
        case 0:
           fragment = fragment01;
            break;
        case 1:
            fragment =fragment02;
            break;
        case 2:
           fragment = fragment03;
            break;
        }
        //替换,替换之前会把被替换的删了
        beginTransaction.replace(R.id.fl_fragment, fragment);
        beginTransaction.commit();
    }

    /**
     * 当tab从选中切换到没有选中的时候调用
     */
    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        
    }

    /**
     * 当tab又一次被选中的时候
     */
    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        
    }
}

 

效果如下:

2.下拉列表模式:

import android.app.ActionBar;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class MainActivity extends Activity {

    private ActionBar actionBar;
    private FragmentManager fragmentManager;
    private Fragment01 fragment01;
    private Fragment02 fragment02;
    private Fragment03 fragment03;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fragmentManager = getFragmentManager();
        fragment01 = new Fragment01();
        fragment02 = new Fragment02();
        fragment03 = new Fragment03();
        actionBar = getActionBar();
        actionBar.setTitle("标题");
        //设置tab的模式,这里为list列表的模式
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
        //声名adapter
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(MainActivity.this,R.layout.layout_tablist_item,R.id.tv_test, new String[]{"体育","宝宝","女排"});
        
        //设置tab 参数: 1.SpinnerAdapter adapter,标题列表的adapter  2.OnNavigationListener callback 监听
        actionBar.setListNavigationCallbacks(arrayAdapter, new ActionBar.OnNavigationListener() {
            /* 
             * 当listtab的一个item被点击的时候调用,第一次进入页面时也会调用
             */
            @Override
            public boolean onNavigationItemSelected(int itemPosition, long itemId) {
                int position = itemPosition;// 获得被选中的索引
                FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
                Fragment fragment = null;
                switch (position) {
                case 0:
                    fragment = fragment01;//继承了fragment
                    break;
                case 1:
                    fragment =fragment02;
                    break;
                case 2:
                    fragment = fragment03;
                    break;
                }
                
                beginTransaction.replace(R.id.fl_fragment, fragment);
                beginTransaction.commit();
                return false;
            }
        });
    }
}

效果:

 

posted @ 2016-08-22 19:00  ts-android  阅读(138)  评论(0编辑  收藏  举报