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!

  • 相关阅读:
    Java面试题(01)
    HTML学习笔记16——尺寸的表示_px、%、em三种
    HTML学习笔记14——HTML 有语义的标签3_字符实体
    HTML13_有语义的标签2_a标签(超链接,锚点,伪类)
    HTML学习笔记12——HTML 有语义的标签1(h,p标签,img标签,列表,表格_制作课程表)
    HTML学习笔记11——CSS 初始化
    HTML学习笔记9——CSS精确控制背景图片位置——background-position
    HTML学习笔记8——CSS设置背景图片
    CSS控制文字的一些基本属性的使用
    HTML学习笔记5——盒模型(这里有棵圣诞树。)
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3269035.html
Copyright © 2011-2022 走看看