我还在研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
中选择的数据,以便在我使用的主屏幕上显示该数字?
答案 0 :(得分:1)
在这个问题的第一部分中没有足够的代码来给出明确的答案
正在执行此代码示例的屏幕将保留在显示堆栈上。当弹出窗口被取消时,推动弹出窗口的屏幕将获得onExposed()
事件。弹出窗口本身也将获得带有参数false
的{{3}}事件,以指示弹出屏幕已从显示堆栈中分离。
由于在UI中为两个事件调用相同的操作,因此决定将“提交”逻辑放在一个或另一个中取决于哪个应该拥有提交过程。我猜想正确的选择是推动PopupScreen的屏幕,但我可以想象一下PopupScreen进行“提交”过程会更有意义的情况。
另请注意,onUiEngineAttached(boolean)
可以因为其他原因而被调用,只有这个特定的PopupScreen被解雇,因此请确保您的代码需要这样做。