我有一个GWT页面,其中包含许多不同的字段,用户需要填写这些字段。当用户填写表单后,他们可以单击此页面上的按钮,这将打开一个PopupPanel,其中包含他们输入内容的摘要。如果用户决定他们输入的所有数据都是正确的,他们可以选择单击此PopupPanel上的“确定”按钮。我想要实现的是,当用户单击OK时,PopupPanel关闭,并触发初始类中的方法(并使用初始类'变量)。由于某些限制,我无法使用EventBus。
在我的初始课程中,我有这个点击处理程序:
buttonAnle.addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
if ( validateTimespan(subs) && validateSubumfeldTimespan(subs) )
{
summary();
}
}
});
方法摘要()显示了popuppanel:
private void summary()
{
int subumfelderNr = subs.getRowCount();
int werbeformenNr = kats.getRowCount();
int days = (int) (datumBis.getValue().getTime() - datumVon.getValue().getTime()) / 86400000;
new SubprogramPopup(umfeldText.getTextBoxText(), subumfelderNr - 1, werbeformenNr - 1, days + 1).show();
}
弹出窗口出现,现在我需要一种方法让OK按钮单击以触发我初始课程中的方法。任何帮助将不胜感激。
答案 0 :(得分:0)
一种可能的解决方案是使用SubprogramPopup中的接口。将此代码添加到SubprogramPopup类:
interface MyHandler {
void doSomething();
}
并将MyHandler作为另一个参数添加到SubprogramPopup的构造函数中。
SubprogramPopup(Textbox textbox,
int value01,
int value02,
int value03,
MyHandler handler) {}
现在,如果你正在创建SubprogramPopup,你可以使用处理程序添加一些东西,如果需要的话应该执行。
new SubprogramPopup(umfeldText.getTextBoxText(),
subumfelderNr - 1,
werbeformenNr - 1,
days + 1,
new MyHandler() {
public void doSomething() {
// enter your code here ...
}
}).show();