在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);
}
但它似乎完全删除了按钮点击的任何功能。
答案 0 :(得分:3)
您可以在类中保存传递给setExamine方法的“cl”引用。然后,您可以先在setExamine方法中删除此特定侦听器。我认为考试是一个场景演员。
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]);
}