版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sup_chao/article/details/79835485
Android攻城狮之SubMenu
SubMenu简介
子菜单就是将功能相同或相似的分组进行多级显示的一种菜单。
SubMenu实现代码
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
SubMenu menu1 = menu.addSubMenu("Documents");
SubMenu menu2 = menu.addSubMenu("Options");
menu1.add(1, 1, 1, "read");
menu1.add(1, 2, 1, "close");
menu2.add(2, 3, 1, "delete");
menu2.add(2, 4, 1, "copy");
menu1.setHeaderTitle("Context1");
menu2.setHeaderTitle("COntext2");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
if(item.getGroupId()==1){
switch(item.getItemId()) {
case 1:
Toast.makeText(this,"click the read",Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(this,"click the close",Toast.LENGTH_SHORT).show();
break;
}
}else{
switch(item.getItemId()){
case 3:
Toast.makeText(this,"click the delete",Toast.LENGTH_SHORT).show();
break;
case 4:
Toast.makeText(this,"click the copy",Toast.LENGTH_SHORT).show();
break;
}
}
return super.onOptionsItemSelected(item);
}
除此之外,还可以通过布局文件设置SubMenu菜单。在res
文件夹下创建menu
文件夹,并创建main.xml
文件。布局文件如下:
<item
android:showAsAction = "never"
android:title="Document">
<menu>
<item
android:id = "@+id/read"
android:showAsAction = "never"
android:title = "read"/>
<item
android:id = "@+id/close"
android:showAsAction = "never"
android:title = "close"/>
</menu>
</item>
<item
android:showAsAction = "never"
android:title="Options">
<menu>
<item
android:id = "@+id/copy"
android:showAsAction = "never"
android:title = "copy"/>
<item
android:id = "@+id/delete"
android:showAsAction = "never"
android:title = "delete"/>
</menu>
</item>
同时更改MainActivity.java
文件,主函数如下:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId()){
case R.id.read:
Toast.makeText(this,"click to read",Toast.LENGTH_SHORT).show();
break;
case R.id.copy:
Toast.makeText(this,"click to copy",Toast.LENGTH_SHORT).show();
break;
case R.id.delete:
Toast.makeText(this,"click to delete",Toast.LENGTH_SHORT).show();
break;
case R.id.close:
Toast.makeText(this,"click to close",Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
点击菜单按钮
点击Document之后的界面
点击了read后