Невозможно закрыть popupScreen в приложении Blackberry - PullRequest
0 голосов
/ 06 февраля 2012

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

Есть идеи по этому поводу?

Код из добавленного комментария:

close();
signInButtonClicked(phoneNumber, pinNumber);
synchronized (UiApplication.getEventLock()) {
    UiApplication.getUiApplication().popScreen(getScreenBelow());
}

Это мой код

btnOk.setChangeListener(new FieldChangeListener() {

public void fieldChanged(Field field, int context) 
{
    // TODO Auto-generated method stub
    try
    {
        if(field == btnOk)
        {
            phoneNumber = efPhoneNumber.getText().toString();
            System.out.println("User Entered Mobile Number: " + phoneNumber);
            pinNumber = efPinNumber.getText().toString();
            System.out.println("User Entered PIN Number: " + pinNumber);

        testClass lvg = new testClass();

        if(!lvg.TableExists())
        {
            lvg.CreateTable();
            lvg.InsertMobileNumber(phoneNumber);
        }
        else 
        {
            String mobile = lvg.getMobileNumber();
            if(!mobile.equals(phoneNumber))
            {
                lvg.UpdateMobileNumber(phoneNumber);
            }
        }               

        System.out.println("We should close");


        signInButtonClicked(phoneNumber, pinNumber);

        net.rim.device.api.ui.Screen scr = UiApplication.getUiApplication().getActiveScreen();

        if (scr instanceof LiveGuardScreen) 
        {
            synchronized (UiApplication.getEventLock()) 
            {
                UiApplication.getUiApplication().popScreen(scr);
            }
        }
    }
}catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
    }
}
});

Ответы [ 2 ]

0 голосов
/ 07 февраля 2012

Спасибо за помощь, я разобрался.Что я сделал, так это отобразил всплывающий экран, на котором я ввел отправленное событие, которое позволило мне закрыть всплывающий экран.потому что, как я это делал раньше, я вызвал метод invoke позже, который продолжал работать, потому что у меня был вызван popupScreen на MainScreen.Так что, даже если я закрыл его правильно, следующее, что я продолжал появляться несколько окон !!!

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

Ура

0 голосов
/ 06 февраля 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...