通过String传递的字段名访问UIBinder字段值?

时间:2013-03-19 15:44:17

标签: java gwt uibinder

我希望通过作为字符串值传递的名称访问UIBinder呈现的字段值

有没有办法访问存储在ui字段中的数据,如

PersonViewImpl.ui.xml

<g:TextBox ui:field="lastName"/>

PersonViewImpl.java

@UIField
String lastName
public Object fieldByName(String fieldName) {
    ....
    return value;
}

PersonActivity.java

PersonView view;
String ln = (String)view.fieldByName("lastName");

任何解决方案? Thnx in advice

1 个答案:

答案 0 :(得分:0)

我不建议使用此模式动态访问小部件。这不是真正干净的代码,很容易破解 如果您想要绑定很多字段,我建议您使用Editors

如果您仍想访问此小部件,则有2种选择:

  1. 创建一个包含所有HashMap es(或您要访问的任何字段)的TextBox,并使用fieldname作为键。您可以创建辅助函数以根据键检索值。但是,您必须自己填充HashMap
  2. 如果您在容器窗口小部件(即FlowPanel)中包含所有窗口小部件,则可以遍历容器窗口小部件的窗口小部件列表并检索它们。您可能会将id设置为fieldname以标识它们。