从加载屏幕返回数据

时间:2012-05-03 03:48:35

标签: blackberry

从此页面实施加载屏幕时出现问题

BlackBerry Please Wait Screen with Time out

它运行良好,但问题是我无法从此代码中获取字符串数据。

我的想法是在从webservice捕获json数据时加载屏幕,并将其作为字符串返回。但是我被卡住了,因为下面的代码无法返回数据。

UiApplication.getUiApplication().invokeLater(new Runnable() {
                    public void run() {
                        UiApplication.getUiApplication().popScreen(thisScreen)

有什么建议吗?

1 个答案:

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