第 5 页 / 共 30 页
2.Context Menu.
它需要注册到某个 View 对象上,当长按这个 View 大概 2 秒时间,会出现这个 Context Menu 。为某个 View
注册 Context Menu 是用 registerForContextMenu(View view) 方法来实现。 Context Menu 在显示前都会调用
onCreateContextMenu 来生成 menu。onContextItemSelected 用来处理选中的菜单项。
注意 :Context Menu 不支持 icons 和 shortcut keys.
Java代码
public void onCreateContextMenu(ContextMenu menu, View v,
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);
}
}
注册这个 Context Menu:
registerForContextMenu(getListView());
这里的 getListView() 是 ListActivity 的方法,它将返回一个 ListView.记住任何一个 View 对象都可以注册一个
Context Menu 。
3.Submenus
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
SubMenu fileMenu = menu.addSubMenu("File");
SubMenu editMenu = menu.addSubMenu("Edit");
fileMenu.add(0,NEW_ID,0,"new");
fileMenu.add(0,OPEN_ID,0,"open");
fileMenu.add(0,SAV_ID,0,"save");
editMenu.add(0,UNDO_ID,0,"undo");
editMenu.add(0,REDO_ID,0,"redo");
return result;
}
评论0
最新资源