在midlet开发中屏幕只有一个如果需要显示不同的内容可以在后台先准备好要显示的内容然后通过Displaysetcurrent(displayable d)函数来解决这个问题 但是如何控制显示不同的内容呢?如果是程序里自动控制那么就不存在这个问题如果需要用户干预进行屏幕的切换又是如何实现的呢? 其实思路也很简单为每个屏幕设置相应的menu然后这些menu的控制统一由一个类来处理那么就可以实现不同屏幕之间的切换了 package hello; import javaxmicroeditionmidlet*; import javaxmicroeditionlcdui*; public class HelloMIDlet extends MIDlet implements CommandListener { private Command exitCommand; // The exit command private Command view; private Display display; // The display for this MIDlet private TextBox t; private MyCanvas m; public HelloMIDlet() { display = DisplaygetDisplay(this); exitCommand = new Command(Exit CommandEXIT ); view = new Command(View CommandITEM ); } public void startApp() { t = new TextBox(Hello Hello World! ); taddCommand(exitCommand); taddCommand(view); tsetCommandListener(this); MyCanvas m=new MyCanvas(); maddCommand(exitCommand); maddCommand(view); msetCommandListener(this); if (SystemgetProperty( microeditioniofileFileConnectionversion) != null) tsetTicker(new Ticker(SystemgetProperty( microeditioniofileFileConnectionversion))); else tsetTicker(new Ticker(no)); displaysetCurrent(m); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c Displayable s) { if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } if (c==view && s = m) { displaysetCurrent(t); } } } 以上代码中主类实现了Commandlistener接口所有屏幕的command都由这个类负责监听和处理那么相当于由这个主类来决定如何切换屏幕 就这么简单 |