0

我想通过作为字符串值传递的名称访问由 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");

有什么解决办法吗?谢谢你的建议

4

1 回答 1

0

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

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

  1. 创建一个HashMap包含您所有的TextBoxes(或您想要访问的任何字段)并使用字段名作为键。您可以创建一个辅助函数来根据键检索值。但是,您必须HashMap自己填充。
  2. 如果您将所有小部件都放在容器小部件中(即FlowPanel),则可以遍历容器小部件的小部件列表并检索它们。您可能会将 id 设置为字段名以识别它们。
于 2013-03-20T09:26:16.480 回答