ActionBar和menu菜单

获得方式两种:

①在扩展包V7中有,这种方式能兼容其它的任何版本,即继承ActionBarActivity

②ActionBar actionBar = getActionBar()该方法获取的系统自带的,比较局限,只能用于3.0之后的版本中。

 

方法:1、actionBar.hide()隐藏

2、actionBar.show()

3、actionBar.setDisplayHomeAsUpEnabled(true);//显示一个可点击的小图标

注:该按钮系统中的id为android.R.id.home

4、ActionBar上的所有图标都可以认为是菜单,在onOptionsItemSelected(MenuItem item)添加事件,可以认为是菜单的替代

怎么在ActionBar上添加菜单和子菜单

①getMenuInflater().inflate(R.menu.main, menu);在res下的menu文件夹中的main中添加如图:

 

注意:item必须要有android:title属性。

android:showAsAction属性:

never永远显示在overflow中,

ifroom能显示的显示,其他显示在overflow中 ,

always总是显示在actionbar上,放不下也不会出现overflow

orderInCategory属性是排序

 

overflow就是ActionBar最右边的三个竖点,点击将产生下拉框

overflow总是显示文字,不显示图标;而ActionBar上只显示图标不显示文字。

②可以利用

onCreateOptionsMenu(Menu menu)方法的参数直接添加

menu.Add(),具体如图


第一个参数是分组,第二个参数是唯一标识,利用标识可以设置监听,第四个是标题

怎么给菜单项添加点击事件?

在该方法中设置onOptionsItemSelected(MenuItem item),参数item中含有id可以通过getItemId()获得

具体如图:

 

 

 

 

同理:在ActionBar可以添加控件:

具体方法:android:actionViewClass="android.widget.SearchView"指定参数为控件的全路径名


添加后可以利用方法下面方法获取findItem.getActionView();

onCreateOptionsMenu(Menu menu) {

                  getMenuInflater().inflate(R.menu.main,menu);

                  //获得菜单按钮

                  MenuItemfindItem = menu.findItem(R.id.ser);

                  //获取菜单控件

                  SearchViewsea = (SearchView) findItem.getActionView();

                  sea.setOnQueryTextListener(newOnQueryTextListener() {

                          @Override

                          publicboolean onQueryTextSubmit(String query) {

                                   //提交

                                   Toast.makeText(MainActivity.this,query, Toast.LENGTH_SHORT).show();

                                  

                                   returnfalse;

                          }

                          @Override

                          publicboolean onQueryTextChange(String newText) {

                                   Toast.makeText(MainActivity.this,newText, Toast.LENGTH_SHORT).show();

                                   returnfalse;

                          }

                  });

Menu菜单分类

选项菜单onCreateOptionsMenu(Menu menu)在该方法中添加,事件在onOptionsItemSelected(MenuItem item)方法中添加

上下文菜单onCreateContextMenu(ContextMenu menu,View v, ContextMenuInfo menuInfo)方法中添加

事件在onContextItemSelected(MenuItem item)方法中添加。

其他和actionBar中一样

registerForContextMenu(btn)方法给某个按钮绑定菜单

弹出菜单Popmenu

PopupMenu pop= newPopupMenu(MainActivity.this, view);创建弹出菜单,并绑定给view

show()该方法让菜单显示出来


同理可以通过两种方法添加子菜单

setOnMenuItemClickListener为菜单项设置监听

setOnDismissListener监听解散

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值