一般来说,菜单有选项菜单、上下文菜单,以及子菜单。
选项菜单是指程序运行时,按Menu键弹出的菜单,一般来说,一屏最多显示六个菜单项而且参照惯例,应该会给每个菜单项添加图标。而上下文菜单,是指长按某项后出现的菜单。子菜单,顾名思义,就是一个菜单的下级菜单。
创建菜单可以通过代码menu.add来实现。创建菜单应该重写函数onCreateOptionsMenu.使用代码创建菜单的示例如下:
/* Creates the menu items */
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MenuOpenBook, 0, "Open book");
menu.add(0, MenuOption, 0, "Option");
return true;
}
/* 如果要让这些菜单做些工作的话,可以使用如下函数。要注意的是,这些功能都是在重写函数onOptionsItemSelected中实现 */
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {//使用getItemId来获得选中的菜单项。
case MenuOpenBook:
OpenBook();
return true;
case MenuOption:
Option();
return true;
}
return false;
}
如果要让这个菜单在不同的时候有不同的内容,可以重写onPrepareOptionsMenu()函数来实现。该函数在每次菜单被加载时都会运行。
不过,为了方便起见,还是建议使用xml文件来创建菜单。下面来介绍一下使用xml文件创建菜单的方法。
首先,右键单击res项,选择new菜单项,在弹出的级联菜单中选择folder,在Folder
name中输入menu,创建存放菜单文件的目录。这个位置和名称都是不能更改的。必须存放在res目录中,子目录名称必须为menu。
然后,单击工具栏的新建按钮,选择Android xml file。
在File文本框中输入要创建的菜单文件的名称,如menuopenbook.xml。注意,这里的名字一般应该采用小写字母与数字的组合,不应该会采用大写字母。
在"What type of resource would you like to create?"单选框中选择Menu项。意思是创建一个菜单XML文件。
Folder文本框会自动定位到res/menu目录。
单击Finish完成创建。
现在虽然已经创建了一个菜单文件,但其中各项内容还是空白,需要向其中添加内容。
依次单击res->menu->menuopenbook.xml,打开文件准备编辑。
单击页面下方的layout切换到设计视图。
单击Add按钮,在弹出的对话框中选择Create a new element at the top level ,in Menu.意思是创建一个菜单项。
在中间的文本框中输入菜单项的名称。如menuopen。
在列表栏中选择Item项。
单击Ok。
将Id更改为@+id/menuopen,将Title更改为open book。
现在就新建了一个菜单项,id为menuopen,而显示的文字是open book。
打开项目的主文件,wnReader.java,在其中添加代码,将菜单应用到项目中去。
只需要添加如下代码即可:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menuopenbook, menu);
return true;
}
然后在import区域中添加如下两行:
import android.view.Menu;
import android.view.MenuInflater;
按Ctrl+F11运行程序,在主界面出现时,按模拟器的Menu键,刚才设计的菜单就会从屏幕下方弹出。
No comments:
Post a Comment