Когда я впервые нажимаю SelectBox и набираю некоторый ключ, мой метод CreateAutoComplete выполняется один раз. Когда я не фокусирую SelectBox и снова нажимаю и набираю какой-то ключ, тогда метод выполняется два раза. Следующие три раза ... четыре ...Эффект прослушивателя выполняется несколько раз
Конечно, я хочу только один раз каждый раз.
private SelectBox<String> sbNationality;
private AutoComplete auto = new AutoComplete();
...
sbNationality.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
addListener(new ClickListener() {
@Override
public boolean keyTyped(InputEvent event, char character) {
auto.CreateAutoComplete(sbNationality, character);
return super.keyTyped(event, character);
}
});
super.clicked(event, x, y);
}
});
Единственное, что делает ваш слушатель в 'sbNationality', назначает другой слушатель, предположим, ваш объект класса. Таким образом, каждый клик добавляет еще один прослушиватель для действия «keyTyped». Почему бы вам просто не добавить этого внутреннего слушателя нормально, не помещая его в дополнение к другому слушателю? – AndrewMcCoist
Можете ли вы показать мне, что делать? Как добавить метод keyTyped в щелчок? – coh