【问题标题】:How to get return value from Popup in Blackberry如何从黑莓中的弹出窗口获取返回值
【发布时间】:2011-12-26 14:12:26
【问题描述】:

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

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

请帮帮我!

【问题讨论】:

    标签: java blackberry popup


    【解决方案1】:

    要从弹出窗口中使用的 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..
    }
    

    【讨论】:

    • 对不起,因为我刚试过但是不能刷新主屏幕,所以不能得到返回值:(
    • "我不知道,如何从 Popup 中获取返回值。" -- 上面的代码 sn -p 将帮助您从弹出(对话框)中获取数据,但是用新数据刷新屏幕更简单。使用新值更新列表的内容,然后调用 MainScreen 的 invalidate()。第二个问题有几个解决方案。所以继续努力:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    相关资源
    最近更新 更多