/**
* 构建一个菜单
* @param menu
* @return
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu,menu);
return super.onCreateOptionsMenu(menu);
}
在res文件中创建menu文件
再在menu文件下创建menu资源文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="listView效果"
android:id="@+id/list_view">
<menu>
<item android:title="垂直标准"
android:id="@+id/list_view_vertical_stander"/>
<item android:title="垂直反向"
android:id="@+id/list_view_vertical_reverse"/>
<item android:title="水平标准"
android:id="@+id/list_view_horizontal_stander"/>
<item android:title="水平反向"
android:id="@+id/list_view_horizontal_reverse"/>
</menu>
</item>
<item android:title="GridView效果"
android:id="@+id/grid_view">
<menu>
<item android:title="垂直标准"
android:id="@+id/grid_view_vertical_stander"/>
<item android:title="垂直反向"
android:id="@+id/grid_view_vertical_reverse"/>
<item android:title="水平标准"
android:id="@+id/grid_view_horizontal_stander"/>
<item android:title="水平反向"
android:id="@+id/grid_view_horizontal_reverse"/>
</menu>
</item>
<item android:title="Stagger效果"
android:id="@+id/stagger_view">
<menu>
<item android:title="垂直标准"
android:id="@+id/stagger_view_vertical_stander"/>
<item android:title="垂直反向"
android:id="@+id/stagger_view_vertical_reverse"/>
<item android:title="水平标准"
android:id="@+id/stagger_view_horizontal_stander"/>
<item android:title="水平反向"
android:id="@+id/stagger_view_horizontal_reverse"/>
</menu>
</item>
</menu>
上面的menu.xml文件实现了一个二级菜单
/**
* 实现菜单项的点击事件
* @param item
* @return
*/
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int itemId = item.getItemId();
switch (itemId){
//ListView效果
case R.id.list_view_vertical_stander:
Log.d(TAG, "点击了ListView的垂直标准 ");
break;
case R.id.list_view_vertical_reverse:
Log.d(TAG, "点击了ListView的垂直反向 ");
break;
case R.id.list_view_horizontal_stander:
Log.d(TAG, "点击了ListView的水平标准 ");
break;
case R.id.list_view_horizontal_reverse:
Log.d(TAG, "点击了ListView的水平反向 ");
break;
//GridView效果
case R.id.grid_view_vertical_stander:
Log.d(TAG, "点击了GridView的垂直标准 ");
break;
case R.id.grid_view_vertical_reverse:
Log.d(TAG, "点击了GridView的垂直反向 ");
break;
case R.id.grid_view_horizontal_stander:
Log.d(TAG, "点击了GridView的水平标准 ");
break;
case R.id.grid_view_horizontal_reverse:
Log.d(TAG, "点击了GridView的水平反向 ");
break;
//瀑布流效果
case R.id.stagger_view_vertical_stander:
Log.d(TAG, "点击了瀑布流的垂直标准 ");
break;
case R.id.stagger_view_vertical_reverse:
Log.d(TAG, "点击了瀑布流的垂直反向 ");
break;
case R.id.stagger_view_horizontal_stander:
Log.d(TAG, "点击了瀑布流的水平标准 ");
break;
case R.id.stagger_view_horizontal_reverse:
Log.d(TAG, "点击了瀑布流的水平反向 ");
break;
default:
}
return super.onOptionsItemSelected(item);
为其的二级菜单选项赋予点击事件,这里用Logd方法简单测试效果
效果图:
菜单效果图1
菜单效果图2
简单点击效果演示: