ActionBar -- 添加Action按钮

为ActionBar添加上述自定义按钮。

点击最右边的三个竖点,弹出定位/设置/帮助等按钮,如下图1。

点击查找按钮时,如下图2。

                                                       图一                               

 

                                                       图二

 

 

1.首先在res -- men 文件夹下面,写一个simrecord_menu.xml布局文件。

其中一个item代表一个按钮。我们通过五个item定义了五个按钮,分别是:查找/添加/定位/设置/帮助/

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
	xmlns:alpha="http://schemas.android.com/apk/res-auto" >

      
        <item
            android:id="@+id/menu_search1"
            android:icon="@drawable/menu_search_white"
            android:actionViewClass="android.widget.SearchView"
            android:showAsAction="ifRoom|collapseActionView"
            android:title="@string/search"/>
	<item 
	    android:id = "@+id/menu_add"
	    android:icon="@drawable/menu_add_bg"
	    android:title="@string/add"
	    android:showAsAction="ifRoom|withText"/>
 
	<item 
	    android:id = "@+id/menu_locate"
	    android:icon="@drawable/menu_locate_bg"
	    android:title="@string/locate"
	    android:showAsAction="never"/>
	
	<item 
	    android:id = "@+id/menu_settings"
	    android:icon="@drawable/menu_settings_bg"
	    android:title="@string/settings"
	    android:showAsAction="never"/>
    
	<item 
	    android:id = "@+id/menu_help"
	    android:icon="@drawable/menu_help_bg"
	    android:title="@string/help"
	    android:showAsAction="never"/>
	
	

</menu>

 

其中 android:icon表示的是显示的图标,android:title表示的是显示的文字。通常在actionbar上显示的都是图标,在溢出菜单上(即三个竖点那个按钮)显示都是文字。

  android:showAsAction 表示的是该按钮的显示方式,有五个可选值:

  ifRoom |  never | always | collapseActionView | withText |

 ifRoom: 表示如果空间有多余的位置,就显示在actionbar上,否则将隐藏在溢出菜单上。如该项目的添加按钮,则是设置为ifRoom,

              当点击搜索按钮时,由于actionbar没有多余的位置,此时它被隐藏在溢出菜单中,见图二。

 never:表示永远不显示在actionbar上,总是隐藏在溢出菜单上。如该项目的 定位/设置/帮助三个按钮,都是隐藏在溢出菜单的。

always:和nerver相反,表示永远显示在actionbar上。

collapseActionView:表示点击该按钮时,该按钮可以展开。如点击搜索按钮后,SearchView会展开占整个actionbar。

withText:显示actionbar的文本标题title

 

 

2.在显示该actionbar的activity中覆写方法onCreateOptionsMenu,将布局文件simrecord_menu.xml设置到activity中

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		MenuInflater mMenuInflater = new MenuInflater(this);
		mMenuInflater.inflate(R.menu.simrecord_menu, menu);
		return true;
	}


 

3.为点击各个按钮设置监听,即覆写方法onOptionsItemSelected

通过每一个Item的ID,设置它的监听。

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		Log.d(TAG," onOptionsItemSelected() item="+item);
		Log.d(TAG," onOptionsItemSelected() item.getItemId()="+item.getItemId());
		switch(item.getItemId()){
		
		case android.R.id.home:
			Toast.makeText(this, "home", Toast.LENGTH_SHORT).show();
			finish();
			return true;
			
		case R.id.menu_search1:
			Toast.makeText(this, "menu_search", Toast.LENGTH_SHORT).show();
			return true;
			
		case R.id.menu_add:
			Toast.makeText(this, "menu_add", Toast.LENGTH_SHORT).show();
			return true;
			
		case R.id.menu_help:
			Toast.makeText(this, "menu_help", Toast.LENGTH_SHORT).show();
			return true;
			
		case R.id.menu_locate:
			Toast.makeText(this, "menu_locate", Toast.LENGTH_SHORT).show();
			return true; 
			
		case R.id.menu_settings:
			Toast.makeText(this, "menu_settings", Toast.LENGTH_SHORT).show();
			return true; 
		default:
				return super.onOptionsItemSelected(item);
		
		}
		
	}


 

 

 


 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值