Android学习笔记之ActionBar Item用法分析
程序员文章站
2023-11-27 12:05:52
本文实例讲述了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程序设计有所帮助。