欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android学习笔记之ActionBar Item用法分析

程序员文章站 2023-08-15 11:08:01
本文实例讲述了android actionbar item用法。分享给大家供大家参考,具体如下: 这里主要讲述actionbar item的使用方法。在手机上,按menu...

本文实例讲述了android actionbar item用法。分享给大家供大家参考,具体如下:

这里主要讲述actionbar item的使用方法。在手机上,按menu键出现menu菜单,但是在平板中可以把菜单放在actionbar里面,放置的item也比手机上多,下面详细介绍其用法:

1、在androidmanifest.xml里面加上

<uses-sdk android:minsdkversion="11"/>

或者

<uses-sdk android:targetsdkversion="11" />

要使版本号在3.0以上,这样系统就自动把menu放在actionbar上面。

2、准备一个menu.xml,以便加载。其实这就是一个传统的menu布局,只是多了android:showasaction="ifroom|withtext"这个属性,ifroom的意思就是说只要actionbar上有空间,就把该item显示出来,否则就坠在后面。

<?xml version="1.0" encoding="utf-8"?>
<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="action_bar_search"
     android:showasaction="ifroom"
     android:actionviewclass="android.widget.searchview" />
  <item android:id="@+id/action_add"
     android:icon="@android:drawable/ic_menu_add"
     android:title="action_bar_add" />
  <item android:id="@+id/action_edit"
     android:icon="@android:drawable/ic_menu_edit"
     android:showasaction="always"
     android:title="action_bar_edit" />
  <item android:id="@+id/action_share"
     android:icon="@android:drawable/ic_menu_share"
     android:title="action_bar_share"
     android:showasaction="ifroom" />
  <item android:id="@+id/action_sort"
     android:icon="@android:drawable/ic_menu_sort_by_size"
     android:title="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="action_bar_sort_size"
         android:onclick="onsort" />
      <item android:id="@+id/action_sort_alpha"
         android:icon="@android:drawable/ic_menu_sort_alphabetically"
         android:title="action_bar_sort_alpha"
         android:onclick="onsort" />
    </menu>
  </item>
</menu>

3、activity中的代码:

import android.app.activity;
import android.graphics.drawable.drawable;
import android.os.bundle;
import android.view.menu;
import android.view.menuinflater;
import android.view.menuitem;
import android.widget.searchview;
import android.widget.searchview.onquerytextlistener;
import android.widget.textview;
import android.widget.toast;
/**
 * this demonstrates idiomatic usage of the action bar. the default honeycomb theme
 * includes the action bar by default and a menu resource is used to populate the
 * menu data itself. if you'd like to see how these things work under the hood, see
 * actionbarmechanics.
 */
public class actionbarusageactivity extends activity implements onquerytextlistener {
  textview msearchtext;
  int msortmode = -1;
  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    msearchtext = new textview(this);
    setcontentview(msearchtext);
  }
  //和加载传统的menu一样,重写oncreateoptionsmenu方法
  @override
  public boolean oncreateoptionsmenu(menu menu) {
    menuinflater inflater = getmenuinflater();
    inflater.inflate(r.menu.actions, menu);
    searchview searchview = (searchview) menu.finditem(r.id.action_search).getactionview();
    searchview.setonquerytextlistener(this);
    return true;
  }
  @override
  public boolean onprepareoptionsmenu(menu menu) {
    if (msortmode != -1) {
      drawable icon = menu.finditem(msortmode).geticon();
      menu.finditem(r.id.action_sort).seticon(icon);
    }
    return super.onprepareoptionsmenu(menu);
  }
  //和相应传统的menu一样,重写onoptionsitemselected方法
  @override
  public boolean onoptionsitemselected(menuitem item) {
    toast.maketext(this, "selected item: " + item.gettitle(), toast.length_short).show();
    return true;
  }
  // this method is specified as an onclick handler in the menu xml and will
  // take precedence over the activity's onoptionsitemselected method.
  // see res/menu/actions.xml for more info.
  public void onsort(menuitem item) {
    msortmode = item.getitemid();
    // request a call to onprepareoptionsmenu so we can change the sort icon
    invalidateoptionsmenu();
  }
  // the following callbacks are called for the searchview.onquerychangelistener
  // for more about using searchview, see src/.../view/searchview1.java and searchview2.java
  public boolean onquerytextchange(string newtext) {
    newtext = newtext.isempty() ? "" : "query so far: " + newtext;
    msearchtext.settext(newtext);
    return true;
  }
  public boolean onquerytextsubmit(string query) {
    toast.maketext(this, "searching for: " + query + "...", toast.length_short).show();
    return true;
  }
}

这样,一个actionbar item的例子就顺利的完成了。

更多关于android相关内容感兴趣的读者可查看本站专题:《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。