在我的应用程序中,我们使用 1. 屏幕设计使用UIBinder与视图类进行绑定 2. 演示者作为控制者和模型。 3.我们确实有Base Presenter(抽象,很少有通用实现) 4. 我们有很多这样的屏幕,所有屏幕中都会有文本框,并且所有屏幕演示器都将扩展基本演示器。
-- 我的要求是当用户更改任何屏幕中的任何文本框时触发并捕获通用事件。 -- 我不想为每个屏幕中可用的每个文本框定义事件。 -- 我想在通用中注册值更改 (ValueChangeHandler) 事件的所有文本框。
我们有办法实现这个目标吗?
据我了解,您希望向一组屏幕中出现的每个文本框添加一个值更改处理程序,而不是添加到每个单独的文本框。
您可以扩展文本框并在构造函数中添加值更改处理程序,并提供一个钩子来执行任何操作。
public class MyTextBox extends TextBox
{
public MyTextBox()
{
super();
addValueChangeHandler( new ValueChangeHandler<String>()
{
@Override
public void onValueChange( ValueChangeEvent<String> event )
{
// TODO Auto-generated method stub
}
} );
}
}