最近项目中碰到要在Android Menu旁边再添加一个按钮,而不是点击menu按钮然后在弹出一些选项.
MainActivity代码:
public class MainActivity extends Activity { private static final int MENU_CONFIRM = 17; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @SuppressLint("NewApi") @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); //添加标题栏的确定按钮 MenuItem item=menu.add(0,MENU_CONFIRM,0,R.string.operation_confirm); /** * setShowAsAction参数说明 MenuItem接口的一些常量 * SHOW_AS_ACTION_ALWAYS 总是显示这个项目作为一个操作栏按钮。 * SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW 此产品的动作视图折叠成一个正常的菜单项。 * SHOW_AS_ACTION_IF_ROOM 显示此项目作为一个操作栏的按钮,如果系统有空间。 * SHOW_AS_ACTION_NEVER 从不显示该项目作为一个操作栏按钮。 * SHOW_AS_ACTION_WITH_TEXT 当这个项目是在操作栏中,始终以一个文本标签显示它,即使它也有指定一个图标。 */ item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);//主要是这句话 item.setOnMenuItemClickListener(listener);//添加监听事件 item.setIcon(R.drawable.ic_menu_confirm);//设置图标 return true; } OnMenuItemClickListener listener=new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case MENU_CONFIRM: Toast.makeText(MainActivity.this, "您点击了确定按钮", Toast.LENGTH_SHORT).show(); break; default: break; } return false; } }; }
效果图如下: