如何开发多屏黑莓应用程序? [英] How to develop a multi screen Blackberry application?

查看:19
本文介绍了如何开发多屏黑莓应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要开发一个应用程序,我可以在其中使用前后菜单项更改屏幕.你能告诉我如何实现它吗?

I need to develop an application where I am able to change screens using menu items previous and next. Can u give me a rough idea about how to implement it?

谢谢

推荐答案

你可以将它实现为一个屏幕数组,然后将它们推成圆形.但不要忘记在推新之前拉当前屏幕.

You can implement it as an array of screens and push them in circle. but don't forget to pull current screen before push new.

这是应用程序将处理屏幕切换,也将处理屏幕阵列.但是菜单是放在屏幕上的,所以我们必须在屏幕和应用程序类之间进行一些通信.

It's the application will handle screen switch and also it will handle the screen array. But menu is placed on the screen, so we have to make some communication between screen and application class.

让我们有一些监听器来切换屏幕:

Let's have some listener to switch screens:

interface IBarrelListener {
    public void goPreviouse();

    public void goNext();
}

现在我们可以使用这个监听器和适当的菜单来实现屏幕:

Now we can implement screen with this listener and appropriate menu:

class ABarrelScreen extends MainScreen {
    IBarrelListener mBarrelListener;

    public ABarrelScreen(IBarrelListener barrelListener) {
        super();
        mBarrelListener = barrelListener;
    }

    protected void makeMenu(Menu menu, int instance) {
        super.makeMenu(menu, instance);
        menu.add(goPreviouseMenuItem);
        menu.add(goNextMenuItem);
    }

    MenuItem goPreviouseMenuItem = new MenuItem("go previouse", 0, 0) {
        public void run() {
            mBarrelListener.goPreviouse();
        };
    };

    MenuItem goNextMenuItem = new MenuItem("go next", 0, 0) {
        public void run() {
            mBarrelListener.goNext();
        };
    };
}

以及应用程序类本身:

public class ScrCircleApp extends UiApplication implements IBarrelListener {

    ABarrelScreen[] mScreens = generateScreens();
    int mCurrentScreen = 0;

    public ScrCircleApp() {
        pushScreen(mScreens[mCurrentScreen]);
    }

    public static void main(String[] args) {
        ScrCircleApp app = new ScrCircleApp();
        app.enterEventDispatcher();
    }

    private ABarrelScreen[] generateScreens() {
        ABarrelScreen[] screens = new ABarrelScreen[6];
        for (int i = 0; i < screens.length; i++) {
            screens[i] = new ABarrelScreen(this);
            screens[i].add(new LabelField("This is screen # "
                    + String.valueOf(i)));
        }
        return screens;
    }

    public void goNext() {
        popScreen(mScreens[mCurrentScreen]);
        mCurrentScreen++;
        if (mCurrentScreen >= mScreens.length)
            mCurrentScreen = 0;
        pushScreen(mScreens[mCurrentScreen]);
    }

    public void goPreviouse() {
        popScreen(mScreens[mCurrentScreen]);
        mCurrentScreen--;
        if (mCurrentScreen < 0)
            mCurrentScreen = mScreens.length - 1;
        pushScreen(mScreens[mCurrentScreen]);
    }
}

替代文字 http://img526.imageshack.us/img526/2372/screenbarrel.jpg

这篇关于如何开发多屏黑莓应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆