【总结】Android攻城狮之SubMenu

本文介绍了 Android 中子菜单(SubMenu)的概念及其实现方法。包括使用 Java 代码创建子菜单和通过布局文件设置子菜单的方法,并展示了点击不同选项时的响应效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值