Android基础学习之navigate(导航)

1.tab导航
直接获取活动的ActionBar,不需要xml布局视图

public class TabNavActivity extends Activity {

    //创建一个tab监听器
    private TabListener listener = new TabListener() {

        @Override //tab切换时调用
        public void onTabUnselected(Tab tab, FragmentTransaction ft) {

        }

        @Override //选中tab时调用
        public void onTabSelected(Tab tab, FragmentTransaction ft) {

        }

        @Override
        public void onTabReselected(Tab tab, FragmentTransaction ft) {

        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //从当前活动中获得bar对象,每个活动只有一个bar
        ActionBar actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//使用系统样式

        //创建多个tab对象
        Tab tab1 = actionBar.newTab().setText("Tab1");              
        Tab tab2 = actionBar.newTab().setText("Tab2");       
        Tab tab3 = actionBar.newTab().setText("Tab3");  

        //必须注册否则报错
        tab1.setTabListener(listener);
        tab2.setTabListener(listener);
        tab3.setTabListener(listener);

        //添加tab页
        actionBar.addTab(tab1);
        actionBar.addTab(tab2);
        actionBar.addTab(tab3);
    }
}

2.list导航

public class ListNavActivity extends Activity {
    String[] actions={"one action","two action","three action"};//列表项
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,actions);//绑定适配器,使用系统下拉式list

        ActionBar actionBar = getActionBar();//获取活动ActivityBar
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);//设置导航模式
//设置回调,和项监听器
actionBar.setListNavigationCallbacks(adapter, new OnNavigationListener() {

            @Override
            public boolean onNavigationItemSelected(int itemPosition, long itemId) {
                Toast.makeText(ListNavActivity.this, "你选择了 " + actions[itemPosition], Toast.LENGTH_SHORT).show();
                return false;
            }
        });

    }
}

3.返回导航

public class BackNavActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ActionBar actionBar = getActionBar();//获取活动ActivityBar
        actionBar.setDisplayHomeAsUpEnabled(true);//设置左上角返回图标可见
        actionBar.setHomeButtonEnabled(true);//设置图标可点击
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home://如果按了返回键
            //指定返回到的活动(可以是别的)
            Intent intent = new Intent(this, MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//如果activity在task存在,将Activity之上的所有Activity结束掉 
            startActivity(intent);
            break;

        default:
            break;
        }
        return super.onOptionsItemSelected(item);
    }
}

4.查找导航
首先定义一个menu资源,这里文件名为search.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/menu_search"
          android:title="查找"
          android:icon="@android:drawable/ic_menu_search"  
          android:showAsAction="ifRoom|collapseActionView"
          android:actionViewClass="android.widget.SearchView" />

</menu>
<!-- 引用系统自带的图标资源 -->
<!-- showAsAction:显示样式 -->
<!-- actionViewClass:使用系统查找组件 -->

直接加在选项菜单栏中

public class SearchNavActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.search, menu);//加载资源
        return super.onCreateOptionsMenu(menu);
    }
}

效果图
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值