如何从Blackberry的Popup获取返回值

时间:2011-12-26 05:43:54

标签: java blackberry popup

我对Blackberry中的Popup有疑问。 在我的应用程序中,我在主屏幕上有手机列表。当我点击“添加”按钮时,我将显示允许输入手机号码的弹出窗口(通过pushScreen弹出窗口),然后单击“确定”关闭弹出窗口(通过弹出窗口弹出窗口),必须更新当前列表显示。

我不知道,如何从Popup获取返回值。在这种情况下,返回值是弹出窗口中的移动号码输入。当弹出窗口关闭时,必须刷新手机列表。

请帮助我!

1 个答案:

答案 0 :(得分:0)

要从Popup中使用的UI字段获取值,我们必须将值存储在某个变量中,并且需要实现一些getter方法。下面是一个搜索弹出屏幕的示例,在点击搜索按钮后,我们通过getter方法获得在弹出屏幕上输入的搜索键。

弹出式实施:

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..
}