当我第一次单击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