0

GWT アプリケーションで UIBinder を使用して 2 つの Java クラスを作成しました。EntryPoint クラスで宣言されている共通メソッドを使用して、あるページから別のページに移動したいと考えています。

しかし、UIBinder クラスの Button Click Event で EntryPoint クラスのメソッドにアクセスできません。

私のコード:

HelloUIBinder hb;
@UiField Button btnLogin;

public Test2() {
    initWidget(uiBinder.createAndBindUi(this));

    btnLogin.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            // TODO Auto-generated method stub

            strEmail = txtEmail.getText().toString();
            strPass = txtPass.getText().toString();

            Window.alert(strEmail);
            Window.alert(strPass);

            hb.onLogin(strEmail, strPass);
        }
    });
}

HelloUIBinder クラスでは、

ログイン方法:

public void onLogin(String email, String pass)
{
    Window.alert(email);
    Window.alert(pass);

    if(email == "abc@yahoo.com" && pass == "abc123")
    {
        RootPanel.get().clear();

        tp = new TestPage();
        RootPanel.get().add(tp);

        animationHelper.goTo(tp, Animation.SLIDE);
    }
    else
    {
        Window.alert("Authentication Failed");
    }
}

しかし、この方法で UmbrellaException エラー メッセージが表示されます。UIBinder クラス内に同じロジックを記述した場合、正常な状態チェックが機能します。

クラスオブジェクトを使用して、別のクラスのメソッドを使用したいと思います。

誰にもアイデアはありますか?

別のクラスからメソッドを呼び出すためのこのエラーを解決するのを手伝ってください。

前もって感謝します。

4

1 に答える 1

0

Umbrella例外からのスタックトレースと、場合によってはUIBinderテンプレートを投稿する必要があります。

場所の変更イベントと履歴マッパーを使用してアクティビティを変更することを強くお勧めします。レイ・ライアンのビデオをご覧ください

Google I /O2009-GWTアプリを設計するためのベストプラクティス http://www.youtube.com/watch?v=PDuhR18-EdM

Google I /O2010-GWTアプリの設計 http://www.youtube.com/watch?v=M5x6E6ze1x8

私たちは多くのプロジェクトでMVPと場所の履歴を使用しており、非常にうまく機能しています。簡単にナビゲートするか、placeContorller.goTo(new Place());を使用してナビゲートできます。方法。これにより、ブックマークと戻るボタンが正しく機能するようになります。

もう1つのオプションは、エントリポイントにClientFactoryシングルトン実装を構築し、それを使用して単純なナビゲーションイベントを処理できることです。しかし、アプリケーションが将来的に複雑になる場合は、コントローラーが最適です。

于 2012-08-28T16:02:28.540 に答える