1)使用actionListener作为参数
的ConnectionRequest{
"starttime": "2016-09-15T03:19:46",
"endtime": "2016-09-15T03:31:43",
"duration": 696,
"status": "bad"
},
在上面的connectionRequest代码中,如果没有网络连接,它会给出IoException:unreachable,这是由下面的handleIOException方法处理的,但如果我在那里使用dialogBox,它就可以了。相反toastbar不在那里工作,为什么呢?如果我使用showForm(" Form",null)以及dialogBox和toastbar,则会重复调用相同的表单,并且还会看到toastbar,并且多次出现对话框。
2)postForm(Form f)方法
ArrayList<Map<String, Object>> responses;
public void groupConnection(StateMachine sm, ActionListener al) {
ConnectionRequest connectionRequest = new ConnectionRequest() {
@Override
protected void readResponse(InputStream input) throws IOException {
JSONParser jSONParser = new JSONParser();
Map<String, Object> parsedData = jSONParser.parseJSON(new InputStreamReader(input));
responses = (ArrayList<Map<String, Object>>) parsedData.get("root");
Display.getInstance().callSerially(new Runnable() {
@Override
public void run() {
al.actionPerformed(null);
}
});
}
@Override
protected void handleException(Exception err) {
//System.out.println("handleException " + err);
}
@Override
protected void handleIOException(IOException err) {
//toastbar doesnt work here but dialogBox works, if showForm("Groups") is used, toastbar is also shown along with dialogbox
//ToastBar.showErrorMessage("Please check your network connection", 4000);
//sm.showForm("Groups", null);
Dialog.show("", "Please check your network connection", "ok", null);
}
};
AllUrl allUrl = new AllUrl();
connectionRequest.setUrl(allUrl.groupsMenu);
InfiniteProgress ip = new InfiniteProgress();
Dialog d = ip.showInifiniteBlocking();
connectionRequest.setDisposeOnCompletion(d);
NetworkManager.getInstance().addToQueue(connectionRequest);
}
在上面的postForm方法中,我曾经通过检查来检查是否存在网络连接:if(connectionGroup.responses == null){do smth ...},它在这里不起作用,因为connectionRequest给出了IoException&amp;不会在connectionRequest中运行代码。
如何解决这个问题?我必须显示&#34;检查连接&#34;在toastBar和带有文本&#34的标签;没有连接&#34;同样。 PS我需要把我所有的组件放在一起postForm中的connectionRequest,因为我需要在调用connectionRequest之前转到表单。
答案 0 :(得分:0)
ToastBar
绑定到特定的Form
,而Dialog
会阻止任何表单展示自己。
您已将ToastBar
设置为一个表单,然后转换为另一个表单Form
。