这个方法通过引入一个IApp的接口,MIDlet类要实现这个接口:
public interface IApp
{
public void start();
}
然后把原来在startApp的内容放入start之中。在App中增加一个方法:
static void continueRun()
{
if(instance.app_ instanceof IApp)
{
((IApp)instance.app_).start();
}
}
好了,然后该具体实现一下语言选择菜单了:
class LanguageMenu extends List implements CommandListener
{
Command cmdOK_;
Object[] langlist_=new Object[]{
"Chinese","zh_cn",null, "USA","en_us",null
};
public LanguageMenu()
{
super("Select Language",List.IMPLICIT);
for(int i=0;i {
this.append((String)langlist_[i],(Image)langlist_[i+2]);
}
cmdOK_=new Command("OK",Command.SCREEN,2);
this.addCommand(cmdOK_);
this.setSelectCommand(cmdOK_);
this.setCommandListener(this);
}
public void commandAction(Command c, Displayable d) {
if(c==cmdOK_)
{
int cmd=this.getSelectedIndex();
instance.lang_=(String)langlist_[cmd*3+1];
try
{
RecordStore.deleteRecordStore(LanguageRMS);
}
catch(Exception ex)
{}
try
{
RecordStore rs=RecordStore.openRecordStore(LanguageRMS,true);
byte[] buf=instance.lang_.getBytes();
rs.addRecord(buf,0,buf.length);
rs.closeRecordStore();
}
catch(Exception ex)
{}
continueRun();
}
}
}
