Как получить возвращаемое значение из всплывающего окна в Blackberry - PullRequest
0 голосов
/ 26 декабря 2011

У меня вопрос по поводу Popup in Blackberry.В моем приложении у меня есть список мобильных телефонов на главном экране.И когда я нажимаю кнопку «Добавить», я показываю всплывающее окно (с помощью всплывающего окна pushScreen), которое позволяет вводить номер мобильного телефона, а затем я нажимаю «Ок», чтобы закрыть всплывающее окно (с помощью всплывающего окна popScreen), отображение текущего списка должно обновляться.1002 * Я не знаю, как получить возвращаемое значение из всплывающего окна.В этом случае возвращаемое значение - это номер мобильного телефона при всплывающем окне.Когда всплывающее окно закрыто, список мобильных телефонов должен обновляться.

Пожалуйста, помогите мне!

1 Ответ

0 голосов
/ 26 декабря 2011

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

Реализация всплывающего окна:

class SearchDialog extends Dialog {
    public static final int CANCEL = 1000;
    public static final int SEARCH = 2000;

    private static final String[] choices = { "Search", "Cancel" };
    private static final int[] values = { SEARCH, CANCEL };

    private EditField searchField = new EditField("Address: ", "", 50, EditField.EDITABLE);

    private static Bitmap bmSearch = Bitmap.getBitmapResource("cmd_search.png");

    private SeparatorField separatorField = new SeparatorField(USE_ALL_WIDTH);

    public SearchDialog() {
        super("Search Address", choices, values, SEARCH, bmSearch);

        Manager delegate = getDelegate();
        if (delegate instanceof DialogFieldManager) {
            DialogFieldManager dfm = (DialogFieldManager) delegate;

            Manager manager = dfm.getCustomManager();
            if (manager != null) {
                manager.insert(separatorField, 0);
                manager.insert(new LabelField(), 1);
                manager.insert(searchField, 2);
                manager.insert(new LabelField(), 3);
            }
        }
    }

    public String getSearchKey() {
        return (searchField == null) ? "" : searchField.getText();
    }
}

Получение значения из диалогового окна (ключ поиска):

SearchDialog seaerchDialog = new SearchDialog();
int ret = seaerchDialog.doModal();
if (SearchDialog.SEARCH == ret) {
    // get the search key entered on search dialog
    String key = seaerchDialog.getSearchKey();
}
else if (SearchDialog.CANCEL == ret) {
    // do something..
}
...