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");

解決策はありますか?アドバイスのThnx

4

1 に答える 1

0

このパターンを使用してウィジェットに動的にアクセスすることはお勧めしません。これは本当にクリーンなコードではなく、簡単に壊れてしまう可能性があります。
バインドするフィールドがたくさんある場合は、エディターを使用することをお勧めします。

それでもウィジェットにアクセスしたい場合は、2つの選択肢があります。

  1. HashMapすべてのTextBoxes(またはアクセスしたいフィールド)を含むを作成し、フィールド名をキーとして使用します。キーに基づいて値を取得するヘルパー関数を作成できます。ただし、HashMap自分でデータを入力する必要があります。
  2. コンテナウィジェット内にすべてのウィジェットがある場合(つまりFlowPanel)、コンテナウィジェットのウィジェットのリストをトラバースして取得できます。それらを識別するために、おそらくIDをフィールド名に設定します。
于 2013-03-20T09:26:16.480 に答える