在GWT中,我想处理点击事件,但仅限用户点击一天。 有一个valueChangeHandler但它会在值改变时触发,所以当我在同一天点击两次时它会触发一次。
其他选项是使用addHandler或addDomHandler,我可以在其中添加ClickHandler,但无论是我点击一天还是传递到其他月份,它都会一直触发。
对我来说这两个选项都不起作用。 任何想法怎么做?
答案 0 :(得分:1)
然后使用addvalueChangeHandler将值设置为其他值。这是一个黑客,但它适用于我。
calendarWidget.addValueChangeHandler(new ValueChangeHandler<Date>() {
@Override
public void onValueChange(ValueChangeEvent<Date> event) {
calendarWidget.setValue(new Date(0));
}
}
答案 1 :(得分:0)
首先,您应该描述更多细节。我不知道你到底想要做什么。 这是我的建议。
(1)。使用Cookies保存当前用户的信息,并将过期日设置为1天。
(2)。不要使用addNewHandler。您应该使用一个处理程序实例的全局变量并将其初始化为NULL。首先,你会被初始化它。这可能只创建一次,你可以检查它是否为NULL。例如:
private CloseHandler handler;
.......
if (handler == null) {
handler = new CloseHandler<PopupPanel>() {
public void onClose(final CloseEvent<PopupPanel> event) {
........
}
};
}
(3)。您也可以使用简单的处理程序,如果触发事件,则使用当前时间和唯一值(例如:登录user.etc的序列)保存在 Map 中。再次点击它之后,你会检索并匹配当前和之前的时间。
对你有用..
答案 2 :(得分:0)
您还可以在DateBox.getDatePicker()和DateBox.getTextBox()上添加处理程序。 您可以像这样添加其他处理程序......
dateBox.addHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Window.alert("click");
}
}, ClickEvent.getType());