PopupScreen关闭时提交数据

时间:2012-09-12 08:06:22

标签: blackberry popup contacts

我还在研BB。我设法显示联系人列表,然后从中选择一个联系人项目。我在MainScreen上实现它。以下是我的代码:

list = (BlackBerryContactList) PIM.getInstance()
                        .openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY);
                PIMItem contact = list.choose();
                if (contact != null) {
                    Vector numbers = new Vector();
                    for (int i = 0; i < contact.countValues(Contact.TEL); i++) {
                        selectedMobileNumber = contact.getString(
                                Contact.TEL, i);
                        numbers.addElement(selectedMobileNumber);
                    }
                    ListPopupScreen listPopupScreen = new ListPopupScreen(
                            FormScreen.this, numbers);
                    UiApplication.getUiApplication().pushScreen(
                            listPopupScreen);
                    System.out.println("OKEEEEEE " + selectedMobileNumber);
                }

有时联系人项目有多个电话号码,因此我必须显示覆盖的SopupScreen以列出所有电话号码。问题是如何提交我从所谓的ListPopupScreen中选择的数据,以便在我使用的主屏幕上显示该数字?

1 个答案:

答案 0 :(得分:1)

在这个问题的第一部分中没有足够的代码来给出明确的答案 正在执行此代码示例的屏幕将保留在显示堆栈上。当弹出窗口被取消时,推动弹出窗口的屏幕将获得onExposed()事件。弹出窗口本身也将获得带有参数false的{​​{3}}事件,以指示弹出屏幕已从显示堆栈中分离。

由于在UI中为两个事件调用相同的操作,因此决定将“提交”逻辑放在一个或另一个中取决于哪个应该拥有提交过程。我猜想正确的选择是推动PopupScreen的屏幕,但我可以想象一下PopupScreen进行“提交”过程会更有意义的情况。

另请注意,onUiEngineAttached(boolean)可以因为其他原因而被调用,只有这个特定的PopupScreen被解雇,因此请确保您的代码需要这样做。