【总结】Android攻城狮之SubMenu

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sup_chao/article/details/79835485

Android攻城狮之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后

猜你喜欢

转载自blog.csdn.net/sup_chao/article/details/79835485