Прослушиватель событий щелчка без пользовательского интерфейса BlackBerry - PullRequest
2 голосов
/ 02 ноября 2011

Я запускаю следующий код в моем приложении. Когда этот код выполняется, он отображает глобальное предупреждение на экране (ОК, Отмена).

final Dialog _dialog = new Dialog(Dialog.D_OK_CANCEL, "Message", Dialog.OK, Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION), Manager.VERTICAL_SCROLL);
Application.getApplication().invokeAndWait(new Runnable() {
    public void run() {
        ui.pushGlobalScreen(_dialog, 0, UiEngine.GLOBAL_QUEUE);
    }
});

Если пользователь нажимает «ОК», тогда я хочу пойти в другой класс. Остальное ничего. Как это сделать? Как я могу узнать, какая кнопка была нажата?

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Код, который вы ищете, это:

string confirmationDialogMessage = "Are you sure you want to do this?";
if (Dialog.ask(Dialog.D_OK_CANCEL, confirmationDialogMessage) == Dialog.OK) {
  //do something
}
else {
  //do nothing
}

Вам не нужно создавать новый экземпляр Dialog или реализовывать интерфейс DialogClosedListener.

(см. http://www.blackberry.com/developers/docs/4.0.2api/net/rim/device/api/ui/component/Dialog.html для получения дополнительной информации).

1 голос
/ 02 ноября 2011

Реализация интерфейса DialogClosedListener и переопределение метода dialogClosed ().

вам поможет этот пример кода.

после вашего _dialog.show (0);установите слушателя для закрытия диалога.

_dialog.setDialogClosedListener(new MyDialogClosedListener());

теперь создайте внутренний класс следующим образом: -

 public class MyDialogClosedListener implements DialogClosedListener
    {

    public void dialogClosed(Dialog dialog, int choice) 
    {
        if(dialog.equals(_dialog))
        {
            if(choice == -1)
            {

            }
            if(choice == 1)
            {
                your code to implement
            }
            else if(choice == 2)
            {

                your code to implement  
            }

        }


    }

}
...