Мне нужно динамически добавлять элементы при нажатии списка в Gwt. Какой обработчик мне нужно использовать? Позже я смогу использовать addChangeHandler, когда элементы будут добавлены в список. Если я использую обработчик кликов для добавления элементов в список, элементы добавляются в список. Но при щелчке списка, элементы списка не перечислены. Список контактов закрывается сразу после щелчка. Как решить эту проблемуКак добавить элементы динамически в поле списка в GWT
0
A
ответ
1
Вот простой код, демонстрирующий, как добавлять элементы в ListBox
.
Вы должны понять некоторые вещи первыми:
ClickEvent
обжигает когда нажатие наListBox
: первый, когда вы нажимаете, чтобы отобразить список и вторым при нажатии кнопки для выбора пункта;ChangeEvent
уволен при изменении выбранного элемента - вы не можете использовать его для отслеживания изменения самого списка элементов;
public class ListBoxTest implements EntryPoint {
private TextArea log = new TextArea();
private ListBox listBox = new ListBox();
private int i;
@Override
public void onModuleLoad() {
for(int j = 0; j < 5; j++)
listBox.addItem("item " + i++);
listBox.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
log(event.toDebugString());
for(int j = 0; j < 5; j++)
listBox.addItem("item " + i++);
}
});
listBox.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
log(event.toDebugString());
}
});
RootPanel.get().add(listBox);
RootPanel.get().add(log);
}
private void log(String text) {
String logText = log.getText();
if(!logText.isEmpty())
logText+= "\n";
logText+= text;
log.setText(logText);
}
}