0

このページからロード画面を実装する際に問題があります

BlackBerry Please Wait 画面とタイムアウト

うまくいきましたが、問題はこのコードから文字列データを取得できないことです。

アイデアは、webservice から json データをキャプチャするときに画面を読み込み、それを文字列として返したいということです。しかし、以下のコードはデータを返すことができないため、行き詰まります。

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

なにか提案を?

4

1 に答える 1

0

を使用してそれInterfaceを実現できます。メソッドを呼び出すとPleaseWaitPopupScreen.showScreenAndWait(Runnable, String)(リンクからBlackBerry Please Wait Screen with Time out )、そのメソッドに別のパラメーターを追加できます。3 番目のパラメーターとして Interface インスタンスを使用すると、そのインターフェイスのコールバック メソッドを使用してPopupScreenクローズ イベントを通知できます。次の手順を試すことができます。


インターフェイスを作成し、コールバック メソッドを定義します。

interface PopupScreenCloseListener {
    // Invoke this method when PopupScreen gets closed.     
    public void popupScreenClosed();
}


インターフェイスを実装し、 の 3 番目のパラメータとして追加します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...
}
于 2012-05-03T20:33:46.700 に答える