前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在ToolBar上创建菜单

在ToolBar上创建菜单

作者头像
sickworm
发布2019-02-27 17:11:31
1K0
发布2019-02-27 17:11:31
举报
文章被收录于专栏:sickwormsickworm

好久没写过界面了,最近用最新的支援库,官方建议AppBar+ToolBar代替原ActionBar。然后翻了一下怎么往ToolBar上创建按钮,翻了半天没一个可以。。。最后发现把onCreateOptionsMenu丢了(网上的大爷们这么默契,全部都把这部分代码忽略掉真的好吗)。附上ToolBar上创建菜单的方法。

Activity中写入:

(XML方式)

Java

@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_check, menu); return true; }

123456

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {    MenuInflater inflater = getMenuInflater();    inflater.inflate(R.menu.menu_check, menu);    return true;}

menu_check.xml:

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context=".CheckActivity"> <item android:id="@+id/action_controller" android:title="@string/start" android:orderInCategory="90" app:showAsAction="always|withText" /> </menu>

1234567891011

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    tools:context=".CheckActivity">     <item android:id="@+id/action_controller"        android:title="@string/start"        android:orderInCategory="90"        app:showAsAction="always|withText" /></menu>

或:

(代码方式)

public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, Menu.FIRST + 1, 1, "设置") .setIcon( android.R.drawable.ic_menu_help) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); return true; }

1234567

public boolean onCreateOptionsMenu(Menu menu) {    menu.add(Menu.NONE, Menu.FIRST + 1, 1, "设置")        .setIcon( android.R.drawable.ic_menu_help)        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);    return true;}

菜单会显示在ToolBar右上角。setShowAsAction相当xml中的app:showAsAction。withText作用是把菜单的文字显示出来,如果想仅显示文字,不设置icon即可。

然后在onOptionsItemSelected中处理点击事件:

@Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()){ case R.id.action_controller: // XML方式 Toast.makeText(MainActivity.this, "设置1", Toast.LENGTH_SHORT).show(); break; case Menu.FIRST + 1: // Java代码方式,仅作示例,两种方法不应混用 Toast.makeText(MainActivity.this, "设置2", Toast.LENGTH_SHORT).show(); break; } return super.onOptionsItemSelected(item); }

1234567891011121314

@Override      public boolean onOptionsItemSelected(MenuItem item) {        switch(item.getItemId()){             case R.id.action_controller: // XML方式               Toast.makeText(MainActivity.this, "设置1", Toast.LENGTH_SHORT).show();                 break;             case Menu.FIRST + 1: // Java代码方式,仅作示例,两种方法不应混用               Toast.makeText(MainActivity.this, "设置2", Toast.LENGTH_SHORT).show();                 break;             }          return super.onOptionsItemSelected(item);      }

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年3月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档