Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 如何开发多屏幕黑莓应用程序?_User Interface_Blackberry_Navigation - Fatal编程技术网

User interface 如何开发多屏幕黑莓应用程序?

User interface 如何开发多屏幕黑莓应用程序?,user-interface,blackberry,navigation,User Interface,Blackberry,Navigation,我需要开发一个应用程序,我能够改变屏幕使用菜单项上一个和下一个。你能给我一个关于如何实施它的大致想法吗 谢谢 使用此功能可显示另一个屏幕您可以将其实现为一个屏幕阵列,并将其按圆周方向推送。但在推新屏幕之前,不要忘记拉当前屏幕 它的应用程序将处理屏幕切换,也将处理屏幕阵列。但是菜单是放在屏幕上的,所以我们必须在屏幕和应用程序类之间进行一些通信 让我们使用一些侦听器切换屏幕: interface IBarrelListener { public void goPreviouse();

我需要开发一个应用程序,我能够改变屏幕使用菜单项上一个和下一个。你能给我一个关于如何实施它的大致想法吗

谢谢


使用此功能可显示另一个屏幕

您可以将其实现为一个屏幕阵列,并将其按圆周方向推送。但在推新屏幕之前,不要忘记拉当前屏幕

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

让我们使用一些侦听器切换屏幕:

interface IBarrelListener {
    public void goPreviouse();

    public void goNext();
}
现在,我们可以使用此侦听器和相应的菜单实现屏幕:

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]);
    }
}
公共类SCRCCLEAPP扩展应用程序实现IBarrelListener{
ABarrelScreen[]mScreens=generateScreens();
int mCurrentScreen=0;
公共SCRCLEAPP(){
推屏(mScreens[mCurrentScreen]);
}
公共静态void main(字符串[]args){
SCRCCLEAPP app=新的SCRCCLEAPP();
app.enterEventDispatcher();
}
专用ABarrelScreen[]生成屏幕(){
ABarrelScreen[]屏幕=新的ABarrelScreen[6];
对于(int i=0;i=mScreens.length)
mCurrentScreen=0;
推屏(mScreens[mCurrentScreen]);
}
公共无效{
popScreen(mScreens[McCurrentScreen]);
mCurrentScreen--;
如果(mCurrentScreen<0)
mCurrentScreen=mScreens.length-1;
推屏(mScreens[mCurrentScreen]);
}
}

这正是我所需要的,一切都在那里。每次你都会砰的一声。谢谢
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]);
    }
}