免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2347 | 回复: 0
打印 上一主题 下一主题

如何实现在不同screen的切换 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-24 17:14 |只看该作者 |倒序浏览
在midlet开发中,屏幕只有一个。如果需要显示不同的内容,可以在后台先准备好要显示的内容,然后通过Display.setcurrent(displayable d)函数来解决这个问题。
但是如何控制显示不同的内容呢?如果是程序里自动控制,那么就不存在这个问题;如果需要用户干预,进行屏幕的切换,又是如何实现的呢?
其实思路也很简单,为每个屏幕设置相应的menu,然后这些menu的控制,统一由一个类来处理,那么就可以实现不同屏幕之间的切换了。
package hello;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
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;
[color="#0000CC"]    private MyCanvas m;

    public HelloMIDlet() {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.EXIT, 0);
        view = new Command("View", Command.ITEM, 1);
    }
    public void startApp() {
        t = new TextBox("Hello", "Hello, World!", 256, 0);
        t.addCommand(exitCommand);
        t.addCommand(view);
        t.setCommandListener(this);
        
        MyCanvas m=new MyCanvas();
        m.addCommand(exitCommand);
        m.addCommand(view);
        m.setCommandListener(this);
        if (System.getProperty(
      "microedition.io.file.FileConnection.version") != null)
                t.setTicker(new Ticker(System.getProperty(
      "microedition.io.file.FileConnection.version")));
            else
                t.setTicker(new Ticker("no"));
        display.setCurrent(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)
        {
            display.setCurrent(t);
        }
    }
}
以上代码中,主类实现了Commandlistener接口,所有屏幕的command都由这个类负责监听和处理。那么相当于由这个主类来决定如何切换屏幕.就这么简单。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/4353/showart_2159062.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP