Android SDK 开发之创建菜单
2010-03-23 04:18:00 来源:WEB开发网switch (item.getItemId()) {
case MENU_NEW_GAME:
newGame();
return true;
case MENU_QUIT:
quit();
return true;
}
return false;
}
add()方法接受4个参数:
groupId: 将该菜单项关联到某个特定的组(见后面的介绍)。
itemId: 用于在回调函数标识一个菜单项。
order: 用于定义它的显示顺序 —— 默认按照add()的顺序来显示。
title: 菜单项的屏幕显示名称 —— 可以为String,也可以为string资源。
提示:如果你有一些菜单项可以放在同一个标题下,考虑将他们组成一个子菜单。
Adding icons 增加图标
可以使用setIcon()来为菜单增加图标。例如:
menu.add(0, MENU_QUIT, 0, "Quit")
.setIcon(R.drawable.menu_quit_icon);
Modifying the menu 修改菜单
如果你想在选项菜单第一次启动以后去改变它,则需改写onPrepareOptionsMenu()方法,该方法每次菜单打开时都会调用。该方法会将 Menu对象的引用传给你,就像onCreateOptionsMenu()回调一样。这在你需要动态改变菜单内容时很有用。
注意:根据当前选择的菜单项来决定如何改变菜单项是不好的习惯。记住,在触摸模式,不会有一个被选择(或者处于焦点的)菜单项。当你需要基于某个UI元素来提供功能时,你应该用快捷菜单来实现这样的行为。
Context Menu 弹出菜单
Android 弹出菜单在概念上和PC上的右键菜单差不多。当一个view注册了一个快捷菜单时,在这个view上长按会弹出一个浮动菜单。快捷菜单可以被注册到任意 veiw对象,但它们一般来说会被注册到ListView。ListView在被按下时背景颜色会变化,暗示会有快捷菜单弹出。
注意:快捷菜单项不支持图标和快捷键。
要创建一个快捷菜单,你应该改写Activity的onCreateContextMenu()和onContextItemSelected()方法。在onCreateContextMenu()回调函数中,你可以使用add()方法来添加一个菜单项,或者在xml中定义。然后,使用registerForContextMenu()方法来给View注册一个快捷菜单。
例如,下面是一段增加快捷菜单的代码:
public void onCreateContextMenu(ContextMenu menu, View v,
更多精彩
赞助商链接