我正在使用 GWT 2.4 和 MVP。这是我的视图对象:
public class LoginWidget extends Composite implements LoginWidgetView {
interface Binder extends UiBinder<Widget, LoginWidget> {
}
private static final Binder BINDER = GWT.create(Binder.class);
@UiField Anchor settings;
public LoginWidget() {
initWidget(BINDER.createAndBindUi(this));
}
@UiHandler("settings")
void handleSettingsClick(ClickEvent e) {
presenter.showSettings();
}
private Presenter presenter;
@Override
public void setPresenter(Presenter presenter) {
this.presenter = presenter;
}
}
我正在设置视图的演示者
...
getLoginWidget().setPresenter(new LoginWidgetPresenter(placeController));
LoginWidgetPresenter 当然实现了视图的 Presenter 接口。但是当我点击设置锚点时,presenter 引用仍然为 null,因此 presenter.showSettings() 会抛出 NullPointerException。我想在调用 LoginWidget 的构造函数并通过以下方式初始化小部件之后
initWidget(BINDER.createAndBindUi(this));
我的@UiHandler("settings") 方法中的点击处理代码忽略了对已使用对象的更改,例如我的演示者对象?有没有办法在调用 initWidget() 方法后设置 Presenter 对象?或者是否可以自定义 @UiHandler/initWidget()-behaviour 我可以在之后设置我的演示者?
谢谢,曼努埃尔