首先重写activity中的两个方法
这个menu列表可以使用自带的也可以自定义布局格式
第一种:自带的菜单格式,直接添加
//第一个int类型的group ID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。
//第二个int类型的item ID参数,代表的是项目编号。这个参数非常重要,一个item ID对应一个menu中的选项。在后面使用菜单的时候,就靠这个item ID来判断你使用的是哪个选项。
//第三个int类型的order ID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的显示顺序来显示。
//第四个String类型的title参数,表示选项中显示的文字。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, 1, 1, "苹果");
menu.add(0, 2, 2, "香蕉");
return super.onCreateOptionsMenu(menu);
}
第二种:自定义,通过MenuInflater填充器设定自定义的menu
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.zhy.sample.demo_recyclerview.MainActivity" >
![这里写图片描述](http://img.blog.csdn.net/20160710193915632)
//前两个会显示到ActionBar
//因为--app:showAsAction--这个属性
//1.alaways:这个值会使菜单项一直显示在ActionBar上。
//2.ifRoom:如果有足够的空间,这个值会使菜单显示在ActionBar上。
//3.never:这个值菜单永远不会出现在ActionBar是。
//4.withText:这个值使菜单和它的图标,菜单文本一起显示。
<item
android:id="@+id/id_action_add"
android:icon="@drawable/actionbar_add_icon"
android:orderInCategory="100"
android:title="add"
app:showAsAction="ifRoom">
</item>
<item
android:id="@+id/id_action_delete"
android:icon="@drawable/ic_menu_delete"
android:orderInCategory="100"
android:title="delete"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/id_action_gridview"
android:orderInCategory="100"
android:title="GirdView"
app:showAsAction="never"/>
<item
android:id="@+id/id_action_listview"
android:orderInCategory="100"
android:title="ListView"
app:showAsAction="never"/>
<item
android:id="@+id/id_action_horizontalGridView"
android:orderInCategory="100"
android:title="HorizontalGridView"
app:showAsAction="never"/>
<item
android:id="@+id/id_action_staggeredgridview"
android:orderInCategory="100"
android:title="StaggeredGridView"
app:showAsAction="never"/>
</menu>
在代码中使用menu
//创建菜单列表
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main_staggered, menu);
return super.onCreateOptionsMenu(menu);
}
//添加选项的点击事件
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.id_action_add:
mStaggeredHomeAdapter.addData(1);
break;
case R.id.id_action_delete:
mStaggeredHomeAdapter.removeData(1);
break;
}
return true;
}
使用xml定义Menu
菜单资源文件必须放在res/menu目录中。菜单资源文件必须使用