1. 创建menu目录
首先需要在layout目录下创建menu目录:

创建menu目录
2. 创建xml文件
在menu目录下创建xml文件,每一个xml文件对应一个menu.
xml文件如何创建,下面给了一个例子:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/item_day"
android:orderInCategory="100"
android:title="@string/day_chart"
app:showAsAction="never"/>
<item
android:id="@+id/item_week"
android:orderInCategory="100"
android:title="@string/week_chart"
app:showAsAction="never"/>
<item
android:id="@+id/item_month"
android:orderInCategory="100"
android:title="@string/month_chart"
app:showAsAction="never"/>
<item
android:id="@+id/item_year"
android:orderInCategory="100"
android:title="@string/year_chart"
app:showAsAction="never"/>
</menu>
PS: Android Studio非常贴心的为menu下的xml文件也创建了预览视图:

menu下xml文件的预览界面
属性解释
app:showAsAction="never":永远不会显示。只会在溢出列表中显示,而且只显示标题,所以在定义item的时候,最好把标题都带上。
app:showAsAction="always" 无论是否溢出,总会显示。
app:showAsAction="ifRoom":如果有位置才显示,不然就出现在右边的三个点中。
android:orderInCategory="100"
设置优先级,值越大优先级越低
3. 在Activity中复写相关代码
需要复写两个方法,直接上代码了:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.some_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
onOptionsItemSelected()返回值解释:
return super.onOptionsItemSelected(item):对没有处理的事件,交给父类来处理。
return true:表示处理完菜单项的事件,不需要将该事件继续传播。
补充
关于为menu添加icon,Android4.0及以后已经默认icon是不显示的,具体可以看这篇文章:
http://blog.csdn.net/csdn_blog_lcl/article/details/52596830
以上