BlackBerry - Глобальные модификации экрана? - PullRequest
1 голос
/ 16 декабря 2009

Я использую следующее глобальное диалоговое окно для отображения некоторого сообщения после того, как пользователь вышел из приложения, и мое приложение уведомило о проверке какой-либо задачи.

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 Ответ

4 голосов
/ 16 декабря 2009

В классе Dialog нет заголовка, я бы предложил использовать PopupScreen расширение:
альтернативный текст 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);
        }
    }
}

ОБНОВЛЕНО согласно комментарию Фернандо

...