4 阅读器中的菜单设计技术
本阅读器菜单结构分两级,一级菜单显示各章的标题,通过选择某一标题选项进入该章进行内容阅读,在章内容界面中设置二级菜单选项,二级菜单中只有一个选项即是返回选项,选中该选项后,则回到上一级,可重新选择章标题,进入新一章内容进行阅读。一级菜单通过List类来建立,首先产生一个List类的对象l,通过l.append("第一章",null)方法在l对象中加入一条选项,用同样的方法可加入多条选项,只要将第一章改为第二章、第三章等,可产生一个有多选项的l对象,通过l.addCommand(exitCommand)方法在l对象中加入一个按钮,作为退出按钮选项,通过l.setCommandListener(this)注册高级事件处理机制,通过该高级事件的注册在操作过程中选中某一选项时,系统自动调用commandAction()函数,并将选中的选项做为参数传递给该函数,在函数中判断选中的是哪一个选项,进行不同的流程处理。最后通过Display类的Display.setCurrent(l)方法将第一级菜单界面显示在手机屏幕上。一级菜单界面的定义如下:
List l=new List("超级阅读--小说",Choice.IMPLICIT); //定义一个List对象l
l.addCommand(exitCommand); //在对象l中加入退出按钮
l.append("第一章",null); //加入第一章选项标题
l.append("第二章",null); //加入第二章选项标题
l.append("第三章",null); //加入第三章选项标题
l.setCommandListener(this); //注册高级事件处理机制
display.setCurrent(l); //将界面显示在手机屏幕上
在阅读器的菜单设计中,无论是选择了章标题选项,还是选择了一级菜单中的退出或者是阅读章内容界面中的退出选项,都将进入commandAction()函数中,在该函数中进行相应判断进入不同的处理流程代码。
主要程序代码如下:
public void commandAction(Command c,Displayable s)
{
if(c==exitCommand)
{//如果是一级菜单的退出按钮选项则退出本系统
notifyDestroyed();
}
else if (c==exitCom)
{//若是阅读章内容中的退出按钮选项则退出阅读内容界面返回一级菜单界面
startApp();
resumeRequest();
}
else
{//如果选择的不是任何一个退出按钮,则进行选择章标题的判断
String strContent;
List tmp=(List)s; //将参数s进行类型转换,转换为List类对象
switch(tmp.getSelectedIndex())
//判断选中的是哪一章标题则进行该章内容阅读界面
{ case 0:
//第一章选中打开test1.txt
Form f=new Form("超级阅读");
strContent=myReadLine ("/test1.txt");
f.append(strContent);
f.addCommand(exitCom);
f.setCommandListener(this);
display.setCurrent(f);
break;
case 1:
//第二章选中打开test2.txt方法同第一章(略)
case 2:
//第三章选中打开test3.txt,如果还有更多章可按此方法再增加
} // switch 多分支结构语句结束
} //if 选择结构结束
} // commandAction函数结束