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()方法从指定的xml资源增加菜单层次结构, 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来重写方法
版权声明:本文为博主原创文章,未经博主允许不得转载。