博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓开发_浅谈SubMenu(子菜单)
阅读量:5828 次
发布时间:2019-06-18

本文共 5251 字,大约阅读时间需要 17 分钟。

子菜单,即点击菜单后出现一个菜单栏供选择

 

创建子菜单的步骤:

  (1) 覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法来添加子菜单
  (2) 调用SubMenu的add()方法,添加子菜单项
  (3) 覆盖onContextItemSelected()方法,响应子菜单的单击事件

 

示例:

(1) 覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu()方法来添加子菜单

1        //动态添加子菜单2         3         SubMenu file = menu.addSubMenu("文件");//子菜单的名字4         SubMenu edit = menu.addSubMenu("编辑");//子菜单的名字5

(2) 调用SubMenu的add()方法,添加子菜单项

1         //给子菜单添加菜单项 2         file.setHeaderTitle("文件操作");//菜单标题 3         file.setHeaderIcon(R.drawable.icon_72); //菜单图标 4         file.add(1, 100, 1, "打开"); 5         file.add(1, 101, 1, "关闭"); 6         file.add(1, 102, 1, "删除"); 7          8         edit.setHeaderTitle("编辑操作");  9         edit.setHeaderIcon(R.drawable.icon_72);10         edit.add(2,100,1,"复制");11         edit.add(2,101,1,"粘贴");12         edit.add(2,102,1,"剪切");

// 添加OptionsMenu菜单项,即4,5,6,10,11,12行代码方法

/* menu.add(groupId, itemId, order, title)
* groupId:菜单项所在的组
* itemId:菜单项编号
* order:排序
* title:标题
* setIcon()方法为菜单设置图标,

 

(3) 覆盖onContextItemSelected()方法,响应子菜单的单击事件

1 //添加响应事件 2     @Override 3     public boolean onOptionsItemSelected(MenuItem item) { 4         // TODO Auto-generated method stub 5          6         //先判断组id再判断item 的id 7         if(item.getGroupId()==1) 8         { 9             switch (item.getItemId()) {10             case 100:11                 Toast.makeText(SubMenu_text.this, "点击了打开", 1).show();12                 break;13             case 101:14                 Toast.makeText(SubMenu_text.this, "点击了关闭", 1).show();15                 break;16             case 102:17                 Toast.makeText(SubMenu_text.this, "点击了删除", 1).show();18                 break;19                 20             default:21                 break;22             }23         }24         else if(item.getGroupId()==2)25         {26             switch (item.getItemId()) {27             case 100:28                 Toast.makeText(SubMenu_text.this, "点击了复制", 1).show();29                 break;30             case 101:31                 Toast.makeText(SubMenu_text.this, "点击了粘贴", 1).show();32                 break;33             case 102:34                 Toast.makeText(SubMenu_text.this, "点击了剪切", 1).show();35                 break;36                 37             default:38                 break;39             }40         }41         return super.onOptionsItemSelected(item);    42     }

 

完整代码:

1 package information; 2  3 import com.example.allcode.R; 4  5 import android.app.Activity; 6 import android.os.Bundle; 7 import android.view.Menu; 8 import android.view.MenuItem; 9 import android.view.SubMenu;10 import android.widget.Toast;11 12 public class SubMenu_text extends Activity{13     @Override14     protected void onCreate(Bundle savedInstanceState) {15         // TODO Auto-generated method stub16         super.onCreate(savedInstanceState);17         setContentView(R.layout.submenu);18     }19     20     @Override21     public boolean onCreateOptionsMenu(Menu menu) {22         // TODO Auto-generated method stub23         //动态添加子菜单24         25         SubMenu file = menu.addSubMenu("文件");//子菜单的名字26         SubMenu edit = menu.addSubMenu("编辑");//子菜单的名字27         28         //给子菜单添加菜单项29         file.setHeaderTitle("文件操作");//菜单标题30         file.setHeaderIcon(R.drawable.icon_72); //菜单图标31         file.add(1, 100, 1, "打开");32         file.add(1, 101, 1, "关闭");33         file.add(1, 102, 1, "删除");34         35         edit.setHeaderTitle("编辑操作"); 36         edit.setHeaderIcon(R.drawable.icon_72);37         edit.add(2,100,1,"复制");38         edit.add(2,101,1,"粘贴");39         edit.add(2,102,1,"剪切");40         41         return super.onCreateOptionsMenu(menu);42         43     }44     45     //添加响应事件46     @Override47     public boolean onOptionsItemSelected(MenuItem item) {48         // TODO Auto-generated method stub49         50         //先判断组id再判断item 的id51         if(item.getGroupId()==1)52         {53             switch (item.getItemId()) {54             case 100:55                 Toast.makeText(SubMenu_text.this, "点击了打开", 1).show();56                 break;57             case 101:58                 Toast.makeText(SubMenu_text.this, "点击了关闭", 1).show();59                 break;60             case 102:61                 Toast.makeText(SubMenu_text.this, "点击了删除", 1).show();62                 break;63                 64             default:65                 break;66             }67         }68         else if(item.getGroupId()==2)69         {70             switch (item.getItemId()) {71             case 100:72                 Toast.makeText(SubMenu_text.this, "点击了复制", 1).show();73                 break;74             case 101:75                 Toast.makeText(SubMenu_text.this, "点击了粘贴", 1).show();76                 break;77             case 102:78                 Toast.makeText(SubMenu_text.this, "点击了剪切", 1).show();79                 break;80                 81             default:82                 break;83             }84         }85         return super.onOptionsItemSelected(item);    86     }87 }
SubMenu_text.java

注意:为了实现界面的美化,需要给该activity一个样式

 

在AndroidManifest.xml文件下修改

<activity android:name="information.SubMenu_text"

  android:theme="@android:style/Theme.Light.NoTitleBar">
</activity>

 

效果图:

 

转载地址:http://bpadx.baihongyu.com/

你可能感兴趣的文章
Windows 下最佳的 C++ 开发的 IDE 是什么?
查看>>
软件工程师成长为架构师必备的十项技能
查看>>
python 异常
查看>>
百度账号注销
查看>>
mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
查看>>
BIEE Demo(RPD创建 + 分析 +仪表盘 )
查看>>
Cocos2dx 3.0开发环境的搭建--Eclipse建立在Android工程
查看>>
基本概念复习
查看>>
重构第10天:提取方法(Extract Method)
查看>>
Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
查看>>
解决pycharm在ubuntu下搜狗输入法一直固定在左下角的问题
查看>>
多线程day01
查看>>
react-native 模仿原生 实现下拉刷新/上拉加载更多(RefreshListView)
查看>>
MySQL出现Access denied for user ‘root’@’localhost’ (using password:YES)
查看>>
通过Roslyn构建自己的C#脚本(更新版)(转)
查看>>
红黑树
查看>>
UIImagePickerController拍照与摄像
查看>>
python调用windows api
查看>>
第四章 mybatis批量insert
查看>>
Java并发框架——什么是AQS框架
查看>>