- Widgetsを動的に配置
- 配置したWidgetsにJavaコード内で管理
という条件を満たす必要があります。その際は、表示しているWidgetを内部でも同様に管理するのがベターです。例えば下記のような方法です。ここでは、配置しているWidgetを行単位でリストに保存しています。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@UiField | |
FlexTable tbl; | |
//このListで追加したWidgetを管理する | |
List<SubjectItem> itemList = new ArrayList<SubjectItem>(); | |
public void addItem(String name){ | |
Label label = new Label(name); | |
TextBox count = new TextBox(); | |
TextBox point = new TextBox(); | |
SubjectItem item = new SubjectItem(); | |
//内部管理用 | |
item.id=id; | |
item.label=label; | |
item.count=count; | |
item.point=point; | |
itemList.add(item); | |
//UIの設定(画面) | |
tbl.setWidget(itemNum,0,label); | |
tbl.setWidget(itemNum,1,count); | |
tbl.setWidget(itemNum,2,point); | |
itemNum++; | |
} | |
public class SubjectItem { | |
//本当はアクセッサメソッドを用意したほうが良い | |
public String id; | |
public Label label; | |
public TextBox count,point; | |
} | |
0 件のコメント:
コメントを投稿