android菜单详解三:上下文菜单
2012-03-12 00:00
183 查看
创建一个上下文菜单
一个上下文菜单跟PC上的右键菜单类似.你应使用上下文菜单为用户界面上的某个部分提供动作选择功能.在Android中,一个上下文菜单会在用户长按一个界面条目时出现.
你可以为任何View创建上下文菜单,但是在 ListView中是最常用到上下文菜单的.每当用户在一个ListView项上长按,并且这个ListView注册了上下文菜单,那么被按的 list item就会弹出上下文菜单 (在联系人应用中就演示了这个过程).
Register a ListView
如果你的activity使用一个ListView并且你希望所有的list items都提供一个上下文菜单,应把ListView传给方法registerForContextMenu(),例如:
registerForContextMenu(getListView());
为了使view提供上下文菜单,你必须为这个View向系统注册上下文菜单.调用方法 registerForContextMenu() 并传入要弹出菜单的 View 作为参数即可.当这个View被长按时,它就会显示一个上下文菜单.
为了定义上下文菜单的样子和行为,需重写你的activity的上下文菜单回调方法:onCreateContextMenu() 和onContextItemSelected().
例如,下面是一个 onCreateContextMenu() ,使用了资源文件 context_menu.xml :
然后,当用户从上下文菜单选择一个菜单项时,系统会调用方法 onContextItemSelected(). 下面的例子展示了如何处理被选择的菜单项:
在此例中,被选择的View条目是一个 ListView条目.为了在选择的一个view条目上执行相应的动作,应用程序需要知道View条目的list ID.为了获得 list ID,程序中调用了 getMenuInfo(), 它返回一个 AdapterView.AdapterContextMenuInfo 对象,这个对象包含了条目的list ID.本地方法editNote()和deleteNote()接受这个list ID用于执行一些作.
注: 上下文菜单项不支持图标或快捷键.
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/nkmnkm/article/details/7099485
一个上下文菜单跟PC上的右键菜单类似.你应使用上下文菜单为用户界面上的某个部分提供动作选择功能.在Android中,一个上下文菜单会在用户长按一个界面条目时出现.
你可以为任何View创建上下文菜单,但是在 ListView中是最常用到上下文菜单的.每当用户在一个ListView项上长按,并且这个ListView注册了上下文菜单,那么被按的 list item就会弹出上下文菜单 (在联系人应用中就演示了这个过程).
Register a ListView
如果你的activity使用一个ListView并且你希望所有的list items都提供一个上下文菜单,应把ListView传给方法registerForContextMenu(),例如:
registerForContextMenu(getListView());
为了使view提供上下文菜单,你必须为这个View向系统注册上下文菜单.调用方法 registerForContextMenu() 并传入要弹出菜单的 View 作为参数即可.当这个View被长按时,它就会显示一个上下文菜单.
为了定义上下文菜单的样子和行为,需重写你的activity的上下文菜单回调方法:onCreateContextMenu() 和onContextItemSelected().
例如,下面是一个 onCreateContextMenu() ,使用了资源文件 context_menu.xml :
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.context_menu, menu); }MenuInflater 被用于从一个 菜单资源inflate出一个菜单. (你也可以使用 add() 来添加菜单项们) .回调函数的参数中包含了用户所选择的View 和一个ontextMenu.ContextMenuInfo 对象,它可以提供被选择的View的更多的信息.你可以使用这些参数来决定哪个上下文菜单应被创建.但是在这个例子中,Activity所有的上下文菜单都是相同的.
然后,当用户从上下文菜单选择一个菜单项时,系统会调用方法 onContextItemSelected(). 下面的例子展示了如何处理被选择的菜单项:
@Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { case R.id.edit: editNote(info.id); return true; case R.id.delete: deleteNote(info.id); return true; default: return super.onContextItemSelected(item); } }这些代码与选项菜单中的例子代码基本相同.getItemId() 从所选的菜单项获取菜单ID,并且使用switch语句匹配菜单ID与对应的处理.并且同于选项菜单的例子,default语句调用父类的同一方法处理未被我们处理的菜单项.
在此例中,被选择的View条目是一个 ListView条目.为了在选择的一个view条目上执行相应的动作,应用程序需要知道View条目的list ID.为了获得 list ID,程序中调用了 getMenuInfo(), 它返回一个 AdapterView.AdapterContextMenuInfo 对象,这个对象包含了条目的list ID.本地方法editNote()和deleteNote()接受这个list ID用于执行一些作.
注: 上下文菜单项不支持图标或快捷键.
$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});
原文链接:
http://blog.csdn.net/nkmnkm/article/details/7099485
相关文章推荐
- android菜单详解三:上下文菜单
- Android菜单详解(四)——使用上下文菜单ContextMenu
- Android菜单详解(四)——使用上下文菜单ContextMenu
- Android菜单详解(四)——使用上下文菜单ContextMenu
- Android菜单详解——上下文菜单(ContextMenu )
- android菜单详解三:上下文菜单
- Android菜单详解(四)——使用上下文菜单ContextMenu
- android菜单详解三:上下文菜单
- android菜单详解三:上下文菜单
- android菜单详解三:上下文菜单
- Android菜单详解(四)——使用上下文菜单ContextMenu
- 【转】android官方侧滑菜单DrawerLayout详解
- android官方侧滑菜单DrawerLayout详解
- Android菜单详解
- Android学习指南之十六:Android菜单详解
- Android的onCreateOptionsMenu()创建菜单Menu详解
- android菜单详解:菜单的一些特性
- Android菜单详解(一)——理解android中的Menu
- Android动画之属性动画Animator详解(卫星菜单)
- Android ActionBar详解(二)--->使用ActionBar显示选项菜单