我是GWT的新手,我想使用超链接,我想将用户重定向到另一个表单。
我的问题是,创建超链接很简单,但我该如何使用它们?似乎已经弃用了addClickListener,还有其他方法可以解决这个问题吗?
更新1 我已经实现了Hyper链接代码,如下所示:
Hyperlink link0 = new Hyperlink("Show Boxes","showbox");
History.addValueChangeHandler(this);
History.fireCurrentHistoryState();
public void onValueChange(ValueChangeEvent<String> event) {
String eventValue=event.getValue();
if(eventValue.equals("showbox")){
showBox();
}
}
通过这个,我看到对应于一个超链接的表单是可见的,但是当我单击另一个超链接时,此表单未关闭而另一个表单未被打开。 我正在使用DockPanel在东方向显示表单。所有超链接的表单只是一个在另一个下面显示。
对此有何评论/建议?
谢谢, Bhavya
答案 0 :(得分:0)
使用Anchor.addClickHandler()方法!
Anchor a = new Anchor("text");
a.addClickHandler(new ClickHandler(){
// etc
});
答案 1 :(得分:0)
如果另一个表单在您的GWT应用程序中,那么您应该考虑使用Hyperlink
。在构造函数中,您提供了一个历史记录标记,当单击链接时,该标记将被推送到History
对象。您只需处理历史记录已更改的事件。它将导航事件与逻辑分离。这也将使您的应用程序意识到后退,并允许用户将书签保存到特定状态(在您的情况下为表单)。 Anchor
更适用于外部链接。
请参阅Coding Basics - History 中描述的内容。
答案 2 :(得分:0)
首先,您需要创建一个带有历史记录的HyperLink:
Hyperlink link = new Hyperlink("link to foo", "foo");
在上面的示例中,“foo”是历史记录。
然后你应该在History对象上注册你的价值变动处理程序,比如
History.addValueChangeHandler(myValueChangeHandler);
在您的价值变更处理程序中,您需要使用event.getValue()
读取当前令牌。
class MyValueChangeHandler implements ValueChangeHandler<String>() {
public void onValueChange(ValueChangeEvent<String> event) {
//get the new value of history token
//clicking on above example link will return "foo" here
String historyToken = event.getValue();
}
}
历史令牌的价值取决于您的申请决定。例如,您可以在历史令牌和应呈现的视图之间维护一个简单的Map。在更复杂的应用程序中,您可以将更多细节编码到令牌中 - 就像应该显示的表单的初始状态一样。