Android(安卓)ActionBar Item学习笔记
16lz
2021-01-24
Android ActionBar Item学习笔记
分类:Android 控件 2011-07-18 21:03 367人阅读 评论(0) 收藏 举报本例主要讲述ActionBar Item的使用方法。在手机上,按Menu键出现Menu菜单,但是在平板中可以把菜单放在ActionBar里面,放置的Item也比手机上多,下面详细介绍其用法:
1、在Androidmanifest.xml里面加上<uses-sdkandroid:minSdkVersion="11"/>或者<uses-sdkandroid:targetSdkVersion="11"/>,要使版本号在3.0以上,这样系统就自动把Menu放在ActionBar上面。
2、准备一个menu.xml,以便加载。其实这就是一个传统的menu布局,只是多了android:showAsAction="ifRoom|withText"这个属性,ifRoom的意思就是说只要ActionBar上有空间,就把该Item显示出来,否则就坠在后面。
view plain- <?xmlversion="1.0"encoding="utf-8"?>
- <menuxmlns:android="http://schemas.android.com/apk/res/android">
- <itemandroid:id="@+id/action_search"
- android:icon="@android:drawable/ic_menu_search"
- android:title="action_bar_search"
- android:showAsAction="ifRoom"
- android:actionViewClass="android.widget.SearchView"/>
- <itemandroid:id="@+id/action_add"
- android:icon="@android:drawable/ic_menu_add"
- android:title="action_bar_add"/>
- <itemandroid:id="@+id/action_edit"
- android:icon="@android:drawable/ic_menu_edit"
- android:showAsAction="always"
- android:title="action_bar_edit"/>
- <itemandroid:id="@+id/action_share"
- android:icon="@android:drawable/ic_menu_share"
- android:title="action_bar_share"
- android:showAsAction="ifRoom"/>
- <itemandroid:id="@+id/action_sort"
- android:icon="@android:drawable/ic_menu_sort_by_size"
- android:title="action_bar_sort"
- android:showAsAction="ifRoom">
- <menu>
- <itemandroid:id="@+id/action_sort_size"
- android:icon="@android:drawable/ic_menu_sort_by_size"
- android:title="action_bar_sort_size"
- android:onClick="onSort"/>
- <itemandroid: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中的代码:
view plain- <preclass="java"name="code">importandroid.app.Activity;
- importandroid.graphics.drawable.Drawable;
- importandroid.os.Bundle;
- importandroid.view.Menu;
- importandroid.view.MenuInflater;
- importandroid.view.MenuItem;
- importandroid.widget.SearchView;
- importandroid.widget.SearchView.OnQueryTextListener;
- importandroid.widget.TextView;
- importandroid.widget.Toast;
- /**
- *ThisdemonstratesidiomaticusageoftheActionBar.ThedefaultHoneycombtheme
- *includestheactionbarbydefaultandamenuresourceisusedtopopulatethe
- *menudataitself.Ifyou'dliketoseehowthesethingsworkunderthehood,see
- *ActionBarMechanics.
- */
- publicclassActionBarUsageActivityextendsActivityimplementsOnQueryTextListener{
- TextViewmSearchText;
- intmSortMode=-1;
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- mSearchText=newTextView(this);
- setContentView(mSearchText);
- }
- //和加载传统的menu一样,重写onCreateOptionsMenu方法
- @Override
- publicbooleanonCreateOptionsMenu(Menumenu){
- MenuInflaterinflater=getMenuInflater();
- inflater.inflate(R.menu.actions,menu);
- SearchViewsearchView=(SearchView)menu.findItem(R.id.action_search).getActionView();
- searchView.setOnQueryTextListener(this);
- returntrue;
- }
- @Override
- publicbooleanonPrepareOptionsMenu(Menumenu){
- if(mSortMode!=-1){
- Drawableicon=menu.findItem(mSortMode).getIcon();
- menu.findItem(R.id.action_sort).setIcon(icon);
- }
- returnsuper.onPrepareOptionsMenu(menu);
- }
- //和相应传统的menu一样,重写onOptionsItemSelected方法
- @Override
- publicbooleanonOptionsItemSelected(MenuItemitem){
- Toast.makeText(this,"SelectedItem:"+item.getTitle(),Toast.LENGTH_SHORT).show();
- returntrue;
- }
- //ThismethodisspecifiedasanonClickhandlerinthemenuxmlandwill
- //takeprecedenceovertheActivity'sonOptionsItemSelectedmethod.
- //Seeres/menu/actions.xmlformoreinfo.
- publicvoidonSort(MenuItemitem){
- mSortMode=item.getItemId();
- //RequestacalltoonPrepareOptionsMenusowecanchangethesorticon
- invalidateOptionsMenu();
- }
- //ThefollowingcallbacksarecalledfortheSearchView.OnQueryChangeListener
- //FormoreaboutusingSearchView,seesrc/.../view/SearchView1.javaandSearchView2.java
- publicbooleanonQueryTextChange(StringnewText){
- newText=newText.isEmpty()?"":"Querysofar:"+newText;
- mSearchText.setText(newText);
- returntrue;
- }
- publicbooleanonQueryTextSubmit(Stringquery){
- Toast.makeText(this,"Searchingfor:"+query+"...",Toast.LENGTH_SHORT).show();
- returntrue;
- }
- }
更多相关文章
- Android(安卓)处理屏幕旋转
- Android底部菜单栏的实现
- Context Menu
- android 最火的开源项目
- Android带多选功能的PhotoPicker
- android基础知识---重写软键盘回车的点击事件
- Android实现自定义菜单
- Eclipse New菜单中没有Android(安卓)Project选项
- 安卓(Android)实现选择时间功能