Android开发之Android Context Menu
1 Creatinga上下文菜单,
Todefine上下文菜单的外观和行为,推翻youractivity的上下文菜单回滚方法,onCreateContextMenu()和onContextItemSelected()。
例如,这里有一个onCreateContextMenu(),使用context_menu.xml menuresource:
java代码:
1. @Override
2. public void onCreateContextMenu(ContextMenu menu, View v,
3. ContextMenuInfo menuInfo) {
4. super.onCreateContextMenu(menu, v, menuInfo);
5. MenuInflater inflater = getMenuInflater();
6. inflater.inflate(R.menu.context_menu, menu); 7. }
复制代码
MenuInflateris用于充气从menuresource上下文菜单。 (你也可以使用增加()添加菜单项。)回调函数参数的方法包括Viewthat和ContextMenu用户选择。 ContextMenuInfoobject提供额外的关于该物品的信息选择。 你可以用这些参数来确定哪些上下文菜单应该产生,但是在这个例子中,所有的activityare上下文菜单一样。
2 Thenwhen用户选择一个项目从上下文菜单,系统callsonContextItemSelected()。这是一个例子说明你是如何选择的物件可以处理:
java代码:
1. @Override
2. public boolean onContextItemSelected(MenuItem item) {
3. AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
4. switch (item.getItemId()) {
5. case R.id.edit:
6. editNote(info.id);
7. return true;
8. case R.id.delete:
9. deleteNote(info.id);
10. return true;
11. default:
12. return super.onContextItemSelected(item);
13. }
14. 15. }
复制代码
这codeis的结构相似Creatingan为例,getItemId菜单(ID)查询为选定的菜单项和开关statementmatches项目中被定义在该入侵检测系统,菜单资源。像选项菜单的例子,默认的声明称thesuper类的情况下能处理的菜项,ifnecessary这里没有处理。
在这个例子中,theselected项目是一项从一个列表。执行一个动作在选定的项目中的应用,需要toknow列表名字选定的项目(它的地位theListView)。获得身份证、应用getMenuInfo(电话),它将返回一个AdapterView。 这包括AdapterContextMenuInfoobject列表名字选定的项目在idfield。 当地的方法editNote()()方法anddeleteNote接受这份名单IDto上执行一个指令列表数据指定的ID。