Чтобы получить значение из полей пользовательского интерфейса, используемых во всплывающем окне, мы должны сохранить значения в некоторой переменной и реализовать некоторый метод получения. Ниже приведен пример всплывающего окна поиска, в котором после нажатия на кнопку поиска мы получаем ключ поиска, введенный на всплывающем экране методом получения.
Реализация всплывающего окна:
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..
}