私が理解しているように、UIBinder で作成されたビューにウィジェットを動的に追加したい場合は、そのビューのプレゼンターであるアクティビティの start メソッドでそれを行います。
これが私のコードです:
@Override
public void start(AcceptsOneWidget panel, EventBus eventBus) {
view = clientFactory.getDashboardView();
view.setPresenter(this);
ArrayList<Department> deps = ModelFactory.getDepartments();
view.passData(deps); // Correct?
panel.setWidget(view.asWidget());
}
public void passData(ArrayList<Department> departments) {
TextCell text = new TextCell();
CellList<String> cellList = new CellList<String>(text);
String[] departmentNames = new String[departments.size()];
for (int i = 0; i < departments.size(); i++) {
departmentNames[i] = departments.get(i).getName();
}
cellList.setRowData(Arrays.asList(departmentNames));
departmentsDiv.add(cellList);
}
できます。ただし、戻るボタンを使用して前の場所に移動して戻ると、ウィジェットが再度追加されます。
これを正しく処理するにはどうすればよいですか?