Android SDK 开发之创建菜单
2010-03-23 04:18:00 来源:WEB开发网ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(0, EDIT_ID, 0, "Edit");
menu.add(0, DELETE_ID, 0, "Delete");
}
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case EDIT_ID:
editNote(info.id);
return true;
case DELETE_ID:
deleteNote(info.id);
return true;
default:
return super.onContextItemSelected(item);
}
}
在onCreateContextMenu(),我们得到ContextMenu用来增加菜单项,被选择的View对象和一个ContextMenuInfo对象,该对象提供了关于该View对象的额外信息。在该例子中,仅仅加入了几个菜单项,没有什么特殊的动作。在onContextItemSelected()回调函数中,我们从MenuItem()中请求AdapterContextMenuInfo,该对象提供了当前被选择的菜单项的信息。我们只需要取得它的ID。
要为ListView所有的项注册快捷菜单,我们将整个ListView对象传给 registerForContextMenu(View) 方法:
registerForContextMenu(getListView());
你可以将任意View对象传给一个快捷菜单。这里,getListView()返回Notepad程序的ListActivity中的ListView对象。这样,该列表中的所有项被注册到快捷菜单。
Submenus 子菜单
一个子菜单可以在除子菜单的任意菜单中被加入。这一点在你的个程序有一大堆功能,并且这些功能可以按主题分类时很有用(例如PC程序中的文件、编辑、视图)。
一个子菜单使用addSubMenu()来创建。该方法返回一个SubMenu对象。你可以使用add()方法来增加菜单项。例如:
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
SubMenu fileMenu = menu.addSubMenu("File");
SubMenu editMenu = menu.addSubMenu("Edit");
fileMenu.add("new");
fileMenu.add("open");
fileMenu.add("save");
editMenu.add("undo");
更多精彩
赞助商链接