zoukankan      html  css  js  c++  java
  • Android笔记之menu与ActionBar使用

    一、在menu/main.xml设计menu(菜单)和ActionBar(活动栏)

    效果如下:

    1、菜单项属性android:showAsAction,如果没有则在底部菜单显示

    这个属性可接受的值有:

    (1)always:这个值会使菜单项一直显示在Action Bar上。

    (2)ifRoom:如果有足够的空间,这个值会使菜单项显示在Action Bar上。

    (3)never:这个值使菜单项永远都不出现在Action Bar上。

    (4)withText:这个值使菜单项以图标,菜单文本一起显示在底部菜单。

    如果有必要可以同时设置两个属性 <android:showAsAction="ifRoom|withText">

    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:id="@+id/action_search"
              android:icon="@android:drawable/ic_menu_search"
              android:title="@string/action_bar_search"
              android:showAsAction="ifRoom"
              android:actionViewClass="android.widget.SearchView" />
         <item android:id="@+id/action_edit"
              android:icon="@android:drawable/ic_menu_edit"
              android:showAsAction="always"
              android:title="@string/action_bar_edit" />
         <item android:id="@+id/action_add"
              android:icon="@android:drawable/ic_menu_add"
              android:title="@string/action_bar_add" />
    </menu>

    2、添加一项菜单,并且带有子菜单:

    <item android:id="@+id/action_sort"  
              android:icon="@android:drawable/ic_menu_sort_by_size"  
              android:title="@string/action_bar_sort"  
              android:showAsAction="ifRoom">  
            <menu>  
                <item android:id="@+id/action_sort_size"  
                      android:icon="@android:drawable/ic_menu_sort_by_size"  
                      android:title="@string/action_bar_sort_size" />  
                <item android:id="@+id/action_sort_alpha"  
                      android:icon="@android:drawable/ic_menu_sort_alphabetically"  
                      android:title="@string/action_bar_sort_alpha"/>  
            </menu>  
        </item>  

    3、菜单项监听事件:

    @Override
    public
    boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.menu_save: Toast.makeText(getApplicationContext(), "menu_save", 0).show(); break;default: break; } return super.onOptionsItemSelected(item); }

     4、其他:

    (1)点击Search按钮的时候,它的Action View会显示出来

    <item android:id="@+id/action_search"
          android:icon="@android:drawable/ic_menu_search"
          android:title="@string/action_bar_search"
          android:showAsAction="ifRoom"
          android:actionViewClass="android.widget.SearchView" />

    属性:

    android:actionProviderClass="android.widget.ShareActionProvider" 

    android:onClick="onSort"

    android:actionViewClass="android.widget.SearchView"

    二、代码设计ActionBar

    1、添加ActionBar并显示或隐藏

    public boolean onCreateOptionsMenu(Menu menu) {
                MenuItem add = menu.add(0, 1, 0, "Save"); 
                MenuItem open = menu.add(0, 2, 1, "Open"); 
                MenuItem close = menu.add(0, 3, 2, "Close"); 
                add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
                open.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
                close.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
                return true;
        }

    隐藏ActionBar:

     actionBar = getActionBar(); 
     actionBar.hide(); 

    2、实现用户点击ActionBar 图标后返回前一个activity,可以通过在Actionbar设置setDisplayHomeAsUpEnabled(true) 来实现。
    在当前Activity中添加:

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.about, menu);
            // 使应用程序图标向上导航
            ActionBar actionBar = getActionBar();
            // actionBar.hide();移除所有actionbar
            actionBar.setDisplayHomeAsUpEnabled(true);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // TODO Auto-generated method stub
            switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
            default:
                return super.onOptionsItemSelected(item);
            }
    
        }

    Done!

  • 相关阅读:
    二级联动
    ajax的post请求方式
    ajax基本常识及get请求方式
    google-gson库下的gson的基本使用
    org.json库下的json的基本使用
    初步认识session
    JSTL的基本使用
    EL的基本使用
    jsp编译器指令errorPage的用法
    poj 1742(好题,楼天城男人八题,混合背包)
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3269035.html
Copyright © 2011-2022 走看看