在Libgdx中,我试图在按下特定按钮时将Clicklistener设置为特定情况。
public void setExamine(final ClickListener cl) {
examine.addListener(cl);
}这是我从类中获得的代码,这些代码可以通过以下方式从另一个类访问:
table.setExamine(new ClickListener(){...});但是,这样做意味着每次都会添加一个新的ClickListener。
没有发生这种情况,有没有办法让它管理一个单击监听器而不是添加一个?我试过用
public void setExamine(final ClickListener cl) {
examine.clearListeners();
examine.addListener(cl);
}但是它似乎完全删除了按钮单击的任何功能。
发布于 2016-02-21 00:52:06
您可以保存类中传递给setExamine方法的"cl“引用。然后,您可以首先在setExamine方法中删除这个特定的侦听器。我假设这个检查是scene2d演员。
private ClickListener clickListener;
public void setExamine(final ClickListener cl) {
if(clickListener != null) {
examine.removeListener(clickListener);
}
examine.addListener(cl);
clickListener = cl;
}如果您想应用像clearListeners()这样的解决方案,应该保留该按钮的默认侦听器。
while(examine.getListeners().size > 1) {
examine.removeListener(examine.getListeners()[1]);
}https://stackoverflow.com/questions/35530783
复制相似问题