我有一個問題。我正在呼叫服務器端的GWT。 調用的結果是一個ArrayList(結果)。內部onSuccess方法另一個 ArrayList包裝結果。但是,如果我想在使用onSuccess方法外使用 ArrayList lista,它包含0個元素, 但內部就像結果ArrayList。我該如何解決它?我試過 使用lista作爲類屬性,靜態屬性,但它不運行 。問題在AsynCallBack - GWT
嗯,我已經改變了我的代碼,但它不運行。我調用另一個方法時的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));
}
}
好的!我理解它,但我希望在異步調用之後執行多行。我怎麼能這樣做?我可以用synchonize標記方法嗎? –
@Jose如果您在執行代碼之前需要數據,則需要使用onSuccess方法調用它。斯坦因的例子很好。 – 2011-06-21 09:19:56
對不起,我想說之後。我想獲得一組ArrayList,之後使用另一個方法打印來自ArrayList的數據的接口。 –