黑莓 - 全局屏幕修改?

时间:2009-12-16 10:48:10

标签: user-interface blackberry dialog screen

在用户退出应用程序并通知我的应用程序检查某项任务后,我使用以下全局对话框显示一些消息。

synchronized( UiApplication.getEventLock() ) {
    UiEngine ui = Ui.getUiEngine();
    Screen screen = new Dialog(Dialog.D_OK, "My Message",
        Dialog.OK, Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION), 
        Manager.VERTICAL_SCROLL);
    ui.pushGlobalScreen(screen, 1, UiEngine.GLOBAL_QUEUE);
}

我想添加此对话框的标题作为我的应用标题,以及一些消息(我已经给出了...)并删除感叹号或此对话框的任何默认图标。虽然在这个对话框中我不想要任何图标。

如果您使用过它,有人可以建议我吗?

谢谢。感谢您能否帮助我解决这个问题。

1 个答案:

答案 0 :(得分:4)

Dialog课程中没有标题,我建议使用PopupScreen分机: alt text http://img187.imageshack.us/img187/6245/9000.jpg

class GlobalDialog extends PopupScreen implements FieldChangeListener {
    ButtonField mOKButton = new ButtonField("OK", ButtonField.CONSUME_CLICK
            | FIELD_HCENTER);

    public GlobalDialog(String title, String text) {
        super(new VerticalFieldManager());
        add(new LabelField(title));
        add(new SeparatorField(SeparatorField.LINE_HORIZONTAL));
        add(new LabelField(text, DrawStyle.HCENTER));
        mOKButton.setChangeListener(this);
        add(mOKButton);
    }

    public void fieldChanged(Field field, int context) {
        if (mOKButton == field)
            close();
    }
}

使用示例:

class Scr extends MainScreen {
    public Scr() {
        synchronized (UiApplication.getEventLock()) {
            UiEngine ui = Ui.getUiEngine();

            String title = "Dialog Title";
            String text = "Lorem ipsum dolor sit amet, consectetur "
                    + "adipiscing elit. Donec venenatis " 
                    + "condimentum urna, non accumsan magna "
                    + "ultrices ut. Morbi fringilla ";
            GlobalDialog screen = new GlobalDialog(title, text);

            ui.pushGlobalScreen(screen, 1, UiEngine.GLOBAL_QUEUE);
        }
    }
}

根据费尔南多评论更新