首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Libgdx管理单个Clicklistener的问题

Libgdx管理单个Clicklistener的问题
EN

Stack Overflow用户
提问于 2016-02-21 00:24:48
回答 1查看 70关注 0票数 3

在Libgdx中,我试图在按下特定按钮时将Clicklistener设置为特定情况。

代码语言:javascript
复制
public void setExamine(final ClickListener cl) {
        examine.addListener(cl);
}

这是我从类中获得的代码,这些代码可以通过以下方式从另一个类访问:

代码语言:javascript
复制
table.setExamine(new ClickListener(){...});

但是,这样做意味着每次都会添加一个新的ClickListener。

没有发生这种情况,有没有办法让它管理一个单击监听器而不是添加一个?我试过用

代码语言:javascript
复制
public void setExamine(final ClickListener cl) {
            examine.clearListeners();
            examine.addListener(cl);
}

但是它似乎完全删除了按钮单击的任何功能。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-21 00:52:06

您可以保存类中传递给setExamine方法的"cl“引用。然后,您可以首先在setExamine方法中删除这个特定的侦听器。我假设这个检查是scene2d演员。

代码语言:javascript
复制
private ClickListener clickListener;

public void setExamine(final ClickListener cl) {
   if(clickListener != null) {
      examine.removeListener(clickListener);
   }
   examine.addListener(cl);
   clickListener = cl;
}

如果您想应用像clearListeners()这样的解决方案,应该保留该按钮的默认侦听器。

代码语言:javascript
复制
while(examine.getListeners().size > 1) {
   examine.removeListener(examine.getListeners()[1]);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35530783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档