Android学习笔记(六):选项菜单,上下文菜单
来源:互联网 发布:db2查看数据库 编辑:程序博客网 时间:2024/06/10 00:48
(1)选项菜单
显示和当前活动相关的信息,通过单击按下MENU按钮来激活选项菜单。对于携带图标的选项菜单,每次最多只能显示6个,当菜单选项多于6个时,将只显示前5个和一个扩展菜单选项,点击扩展菜单选项(more)将会弹出其余的菜单项。扩展菜单项中将不会显示图标,但是可以显示单选按钮和复选框。
创建一个选项菜单的步骤:
1、覆盖Activity的onCreateOptionsMenu(Menu menu)函数
2、调用menu的add()方法添加菜单项(MenuItem),可以调用MenuItem的setIcon()方法来为菜单设置图标
3、当菜单项()被选择时,我们可以通过覆盖Activity的onOptionsItemSeleted(MenuItem item)方法来响应事件
下面先来看下onCreateOptionsMenu()函数
public boolean onCreateOptionsMenu (Menu menu)
函数返回值:布尔值,表示是否显示该函数中设置的菜单
参数:Menu对象
@Overridepublic boolean onCreateOptionsMenu(Menu menu){super.onCreateOptionsMenu(menu);createMenu(menu);return true;}
onCreateOptionsMenu函数仅在第一次使用菜单时被调用一次。在这个函数我们可以通过Menu对象的add()方法添加菜单子项,这个函数有四个重载函数,下面分别介绍:
public abstract MenuItem add (CharSequence title)
参数说明:指定菜单上的显示文字
public abstract MenuItem add (int groupId, int itemId, int order, int titleRes)
参数说明:groudId:是指组ID,用以批量地对菜单子项进行处理和排序itemId:是子项ID,是每一个菜单子项的唯一标识order:指定菜单子项在选项菜单中的排列顺序titlerRes: 菜单标题的引用public abstract MenuItem add (int titleRes)参数说明:titlerRes: 菜单标题的引用通过string.xml中添加
public abstract MenuItem add (int groupId, int itemId, int order, CharSequence title)
这个是最常用的方法参数说明:groudId:是指组ID,用以批量地对菜单子项进行处理和排序itemId:是子项ID,是每一个菜单子项的唯一标识order:指定菜单子项在选项菜单中的排列顺序 title: 菜单标题
public boolean onOptionsItemSeleted(MenuItem item)
响应单击不同选项的事件。
@Overridepublic boolean onOptionsItemSelected(MenuItem item){return MenuChoice(item);}辅助方法
private void createMenu(Menu menu){MenuItem mnu1 = menu.add(0, 0, 0, "Item1");{mnu1.setAlphabeticShortcut('a');mnu1.setIcon(R.drawable.ic_launcher);}MenuItem mnu2 = menu.add(0 , 1, 1,"Item2");{mnu2.setAlphabeticShortcut('b');mnu2.setIcon(R.drawable.ic_launcher);}MenuItem mnu3 = menu.add(0 , 2, 2,"Item3");{mnu3.setAlphabeticShortcut('c');mnu3.setIcon(R.drawable.ic_launcher);}MenuItem mnu4 = menu.add(0 , 3, 3,"Item4");{mnu4.setAlphabeticShortcut('d');mnu4.setIcon(R.drawable.ic_launcher);}menu.add(0, 4, 4, "Item5"); menu.add(0, 5, 5, "Item6"); menu.add(0, 6, 6, "Item7");}private boolean MenuChoice(MenuItem item){switch (item.getItemId()){case 0:Toast.makeText(this, "You clicked on Item 1", Toast.LENGTH_SHORT).show();return true;case 1:Toast.makeText(this, "You clicked on Item 2", Toast.LENGTH_SHORT).show();return true;case 2:Toast.makeText(this, "You clicked on Item 3", Toast.LENGTH_SHORT).show();return true;case 3:Toast.makeText(this, "You clicked on Item 4", Toast.LENGTH_SHORT).show();return true;case 4:Toast.makeText(this, "You clicked on Item 5", Toast.LENGTH_SHORT).show();return true;case 5:Toast.makeText(this, "You clicked on Item 6", Toast.LENGTH_SHORT).show();return true;case 6:Toast.makeText(this, "You clicked on Item 7", Toast.LENGTH_SHORT).show();return true;default:break;}return false;}
(2)上下文菜单
有时候我们也可以叫做快键菜单。例如我们在电脑桌面右键所看到的菜单就是快捷菜单,也叫上下文菜单,叫上下文菜单是因为Context翻译成为上下文的意思。
创建上下文ContextMenu菜单的步骤:
1、 覆盖Activity的onCreateContextMenu()方法,调用Menu的add方法添加菜单项
2、 覆盖onContexItemSelected()方法,响应菜单单击事件
3、 调用registerForContexMenu()方法为实例注册上下文菜单(相当于setOnCreateContextMenuListener())
public void onCreateContextMenu (ContextMenu menu,View v,ContextMenu.ContextMenuInfo menuInfo)
参数说明:
menu:需要显示的快捷菜单
v:V是用户选择的界面元素
menuInfo:menuInfo是所选择界面元素的额外信息
@Overridepublic void onCreateContextMenu(ContextMenu menu,View view,ContextMenuInfo menuInfo){super.onCreateContextMenu(menu, view, menuInfo);createMenu( menu);}说明:这个onCreateContextMenu与onCreateOptionsMenu函数不一样,onCreateOptionsMenu函数仅在选项菜单第一次启动时被调用一次,而onCreateContextMenu函数在每次启动都将会被调用一次。
public boolean onContextItemSelected (MenuItem item)
这个方法和前面的onMenuItemSelected大同小异,在此就不再多说明了
4.或者用XML创建上下文菜单
需要通过Activity的getMenuInflater()返回一个MenuInflater对象,然后通过MenuInflater对象的inflater()方法指定XML文件的引用
public void inflate (int menuRes, Menu menu)
参数说明:
menuRes:XML文件的引用位置
menu:要显示的菜单
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { //XML方式创建的菜单项 MenuInflater inflater=getMenuInflater(); inflater.inflate(R.menu.context_menu, menu); }
context_menu.xml 文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/contextMenu1" android:title="XML创建的菜单子项1"></item> <item android:id="@+id/contextMenu2" android:title="XML创建的菜单子项2"></item> <item android:id="@+id/contextMenu2" android:title="XML创建的菜单子项3"></item></menu>
- Android学习笔记(六):选项菜单,上下文菜单
- Android入门笔记之菜单 (选项菜单和上下文菜单)
- Android选项菜单和上下文菜单解析
- 【Android基础知识】选项菜单、上下文菜单、子菜单的使用
- Android基础知识】选项菜单、上下文菜单、子菜单的使用
- android之三大菜单(子菜单,选项菜单,上下文菜单)
- android——3种menus(选项菜单,弹出式菜单,上下文菜单)
- 上下文菜单及选项菜单
- Android之选项菜单子菜单学习笔记
- 选项菜单+上下文菜单+子菜单
- 选项菜单+上下文菜单+子菜单
- Menu(选项菜单,上下文菜单,弹出式菜单)
- 安卓开发复习笔记——Menu菜单组件(选项菜单,上下文菜单,子菜单)
- 笔记10 菜单之 选项菜单optionsMenu、上下文菜单ContextMenu、子菜单SubMenu
- 安卓开发笔记——Menu菜单组件(选项菜单,上下文菜单,子菜单)
- 实现带子菜单的选项菜单(学习笔记)
- android创建上下文菜单(即长按菜单)
- android组件介绍:TabHost、菜单(普通菜单、上下文菜单)
- SharePoint 2010中重置windows 活动目录(AD)域用户密码的WebPart(免费下载)
- JPEG解码算法流程详解
- iphone cydia插件开发_环境搭建
- 【Android】Android性能测试之MAT的使用
- db2 快照监控
- Android学习笔记(六):选项菜单,上下文菜单
- 我的《鸟哥的Linux私房菜》笔记(四)关于查阅档案内容
- myeclipse使用
- JPEG文件格式介绍
- 黑马第五天之Sax解析XML文档和Dom4J解析XML文档
- C#中Dictionary、ArrayList、Hashtable和Array的区别
- MFC从文件中读取数据和向文件中写入数据
- 对于 const 用法总结
- qt qmake moc pro