给应用添加菜单主要分为三步:
第一步:创建菜单布局:在res目录下面创建一个menu文件夹。然后创建main.XML.代码如下。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/author"
android:icon="@mipmap/ic_launcher"
android:title="author" />
<item android:id="@+id/about"
android:icon="@mipmap/ic_launcher"
android:title="about" />
</menu>
在这里我创建了两个菜单子选项Item,分别定义ID,图标以及title。第二步:在活动中重写onCreateOptionsMenu()方法:
MenuInflater menuInflater=getMenuInflater();
menuInflater.inflate(R.menu.main,menu);
return true;//允许显示
这里主要时获取到MenuInflater对象,然后调用其inflate()方法创建菜单。这个方法有两个参数,第一个参数就是第一步创建的布局资源,第二个参数则是指定将菜单添加到哪个Menu对象中去。
第三步:创建点击事件:重写onOptionsItemSelected()方法。
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.author:
Toast.makeText(MainActivity.this,"Made by Achan",Toast.LENGTH_SHORT).show();
return true;
case R.id.about:
Toast.makeText(MainActivity.this,"Version 1.0",Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);//未处理则调用超类实现
}
}
这里需要说明的是在每个case下都要返回true,如果没有处理则调用超类实现默认行为。