問題があります。私はGWTのサーバー側に電話しています。 呼び出しの結果はArrayList(result)です。 onSuccessメソッド内で別の ArrayListが結果でラップされます。しかし、 ArrayListリストをonSuccessメソッドの外側に使用したい場合は、 の0要素が含まれていますが、その内部はresult ArrayListのようです。どうすれば解決できますか?私は クラス属性、静的属性としてlistaを使用しようとしました...しかし、 が実行されません。AsynCallBackの問題 - GWT
まあ、コードを変更しましたが、実行されません。 see here - するonSuccessが呼び出されたとき、私は私はあなたが非同期呼び出しより上に読むために必要があると思う
public void addContainers() throws Exception {
gwtService.obtainAttributesDevice(1, new AsyncCallback<ArrayList<String>>(){
@Override
public void onFailure(Throwable caught) {
System.out.println("ERROR");
Window.alert(caught.getMessage());
}
@Override
public void onSuccess(ArrayList<String> result) {
lista.addAll(0, result);
addProjectContainers();
}
});
private void addProjectContainers() throws Exception {
RootPanel.get("mainContainer").add(new Label("Array lista 2: "+lista.toString()));
RootPanel.get().add(new Label(String.valueOf("Array lista 2: "+lista.size())));
for(int i = 0; i < lista.size(); i++){
RootPanel.get().add(new Label("BOTON "+i));
}
}
私はそれを理解していますが、非同期呼び出しの後にserveral行を実行したいと思います。どうすればいい?シンクロナイゼーションでメソッドにタグを付けることができますか? –
@Joseコードを実行する前にデータが必要な場合は、onSuccessメソッドから呼び出す必要があります。スタインの例は良いです。 –
申し訳ありませんが、私は後で言いたいことがあります。私はArrayListのセットを取得したいと思いますし、別のメソッドを使って、ArrayListからのデータでインターフェイスを印刷します。 –