从此页面实施加载屏幕时出现问题
BlackBerry Please Wait Screen with Time out
它运行良好,但问题是我无法从此代码中获取字符串数据。
我的想法是在从webservice捕获json数据时加载屏幕,并将其作为字符串返回。但是我被卡住了,因为下面的代码无法返回数据。
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
UiApplication.getUiApplication().popScreen(thisScreen)
有什么建议吗?
答案 0 :(得分:0)
您可以使用Interface
来实现这一目标。当您调用方法PleaseWaitPopupScreen.showScreenAndWait(Runnable, String)
时(来自链接BlackBerry Please Wait Screen with Time out),您可以在该方法上添加另一个参数。如果将Interface实例用作第三个参数,则该接口的回调方法可用于通知PopupScreen
关闭事件。您可以尝试以下程序。
创建一个接口,定义回调方法。
interface PopupScreenCloseListener {
// Invoke this method when PopupScreen gets closed.
public void popupScreenClosed();
}
实现接口并将其作为showScreenAndWait
的第三个参数附加。还可以在回调方法上获取PopupScreen关闭事件通知。
class MyClass implements PopupScreenCloseListener {
public void showWaitingPopupScreen(final Runnable runThis, String text) {
// append the interface, PopupScreenCloseListener as third parameter
PleaseWaitPopupScreen.showScreenAndWait(runThis, text, this);
}
public void popupScreenClosed() {
// listen PopupScreen close event here...
// and add codes...
}
}
并修改方法的当前实现showScreenAndWait
。
public static void showScreenAndWait(final Runnable runThis, String text, final PopupScreenCloseListener listener) {
// old codes...
// old codes...
// Now dismiss this screen
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
UiApplication.getUiApplication().popScreen(thisScreen);
// notify PopupScreen close event.
if (listener != null) {
listener.popupScreenClosed();
}
}
});
// old codes...
// old codes...
}