1.在res下新建一个menu文件夹,在menu文件夹里新建一个main.xml文件,编写如下代码
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/add"
android:title="Add"/>
<item
android:id="@+id/remove"
android:title="Remove"/>
</menu>
item标签用来创建菜单项,现在我们就有了add和remove两个菜单项
2.在activity中重写 onCreateOptionsMenu()方法
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
通过 getMenuInflater()方法得到 MenuInflater 对象,然后通过inflate()方法就可以给当前活动创建菜单, inflate()方法接收两个参数,第一个参数用于指定我们通过哪一个资源文件来创建菜单,第二个参数用于指定我们的菜单项将添加到哪一个 Menu 对象当中,这里直接使用 onCreateOptionsMenu()方法中传入的 menu 参数。返回值为true,表示创建的菜单能够显示。
3.重写 onOptionsItemSelected()方法,用来定义菜单点击之后的响应事件
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {//判断点击了哪一个菜单项
case R.id.add:
Toast.makeText(this, "add菜单项", Toast.LENGTH_SHORT).show();
break;
case R.id.remove:
Toast.makeText(this, "Remove菜单项", Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}
4.运行程序,按下menu键,显示如下
5.当时写onCreateOptionsMenu方法的时候,少写了一个e,写成了onCreatOptionsMenu,坑爹的是竟然没有报错,找了很长时间才解决
推荐大家用eclipse菜单栏里的Source->Override/Implements methods来重写方法