1.在res目录下创建menu文件夹,在menu下创建main.xml;
2.在main.xml中加入代码:
<span style="white-space:pre"> </span><item
<span style="white-space:pre"> </span>android:id="@+id/add_item"
<span style="white-space:pre"> </span>android:title="Add"/>
<span style="white-space:pre"> </span><item
<span style="white-space:pre"> </span>android:id="@+id/remove_item"
<span style="white-space:pre"> </span>android:title="Remove"/>
其中,<item>标签用来创建某一个菜单项,android:id给此菜单指定标识符,android:title给此菜单指定一个名称。
3.重写onCreateOptionsMenu()方法
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
其中,getMenuInflater()方法可以得到Menuflater对象,调用它的inflate()方法为当前活动创建菜单。inflate()方法的原形为void inflate(int menuRes,Menu menu);第一个参数为创建菜单的资源R.menu.main,第二个参数制定创建的菜单加入到哪个Menu对象当中,这里使用onCreateOptinosMenu方法传入的menu参数。返回true表示菜单显示出来,false则不显示
4.为菜单定义响应事件,重写onOptionsItemSelected()方法。
public boolean onOptinosItemSelected(MenuItem item){
switch(item.getItemId()){
case R.id.add_item:
Toast.makeText(FirstActivity.this, "You clicked add", Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(FirstActivity.this, "You clicked remove", Toast.LENGTH_SHORT).show();
break;
default:
}
return super.onOptionsItemSelected(item);
}
在onOptionsItemSelected()方法中调用item.getItemId()方法来判断点击的是哪一个菜单,然后给每个点击的菜单项加入toast处理
完成上述工作后发现,虽然点击Menu能够显示出菜单,但是点击具体的某一个菜单后并不能弹出toast,可能是菜单没有注册?在以后的学习中注意找到解决问题!!