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

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

问题描述

我需要开发的地方我能够更改使用菜单项previous和明年屏幕的应用程序。 ü可以给我关于如何实现它的一个粗略的想法?

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]);
    }
}

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

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