元素。
- :创立一个MenuItem,代表了菜单中一个选项。
:对菜单项进行分组,能够以组的办法操作菜单项。
- 元素除了惯例的id、icon、title特点的支撑,还有一个重要的特点:android:showAsAction,这个特点是起兼容性的,描绘了在Android的高版别中,菜单项何时以何种办法加入到ActionBar中。
是对菜单进行分组,分组后的菜单显现作用并没有差异,仅有的差异在于能够针对菜单组进行操作,这样关于分类的菜单项,操作起来更便利,供给如下的操作:
Menu.setGroupCheckable():菜单组内的菜单是否都可选。
Menu.setGroupVisible():是否躲藏菜单组的一切菜单。
Menu.setGroupEnabled():菜单组的菜单是否有用。
假如菜单项需求单选或许多选,能够运用android:checkableBehavior特点设置,它能够对单个- 或许设置一个组,这个特点承受三个参数:single,单选;all,多选,none,没有Checked的选项,默许。
当创立好一个XML菜单资源文件之后,能够运用MenuInflater.inflate()办法填充菜单资源,使XML资源变成一个可编程的目标。
一、Options menu选项菜单:
OptionMenu,选项菜单,单击手机上的菜单键(MENU)呈现,有必要设备具有菜单按钮才能够触发。由于屏幕的约束,最多只能展现六个菜单项,假如界说的菜单项超出了六个,其他的菜单项将被躲藏,第六个菜单将会显现“更多”,点击打开更多的菜单。虽然在Android3.0之后不再引荐运用选项菜单,可是假如运用了,在Android3.0之后的设备上,选项菜单项将被默许转移到ActionBar中,这个能够经过android:showAsAction特点操控。
创立选项菜单的中心过程:
(1)重写Activity的onCreateOptionMenu(Menu menu)办法,当菜单第一次被加载时调用
(2)调用Menu 的add( )办法增加菜单项(MenuItem),一起能够调用MenuItem的setIcon()办法为菜单项设置图标(注:Android 3.0之后,即便增加了图标也不会显现)
(3)重写Activity的OptionsItemSelected(MenuItem item)来呼应菜单项(MenuItem)的点击事情
来看一下详细的代码完成:
新建Android工程MenuTest:
【办法一】经过配置文件增加Menu选项
(1)在res/menu/main.xml中界说菜单项。main.xml的代码如下:
仿制代码
仿制代码
注:第9行和第15行的字符串引证,需求提早在strings.xml文件中设置好。
(2)MainActivity.java:
仿制代码
1 package com.example.menutest;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.view.Menu;
6 import android.view.MenuItem;
7 import android.widget.Toast;
8
9
10 public class MainActivity extends Activity {
11
12 @Override
13 protected void onCreate(Bundle savedInstanceState) {
14 super.onCreate(savedInstanceState);
15 setContentView(R.layout.activity_main);
16 }
17
18
19 //重写onCreateOptionMenu(Menu menu)办法,当菜单第一次被加载时调用
20 @Override
21 public boolean onCreateOptionsMenu(Menu menu) {
22 // Inflate the menu; this adds items to the action bar if it is present.
23 //填充选项菜单(读取XML文件、解析、加载到Menu组件上)
24 getMenuInflater().inflate(R.menu.main, menu);
25 return true;
26 }
27
28 //重写OptionsItemSelected(MenuItem item)来呼应菜单项(MenuItem)的点击事情(依据id来区别是哪个item)