我有一个按钮想要向其添加一个clickListener,并且想要在首次通话后将其删除。
我看到只有setOnClickListener
而不是addOnClickListener
,尽管有articles
我需要保留引用吗?不能是匿名者吗?
我看到没有removeOnClickListener
closeButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
closeButton.setOnClickListener(null);
}
});
答案 0 :(得分:0)
视图仅包含对一个OnClickListener
的引用。
调用View.setOnClickListener(OnClickListener)
会更改该引用-先前的引用已删除,提供的引用将其替换为新的侦听器。如果您将null
用作参数,则将没有侦听器。
如果您希望在一个视图上具有多个单击侦听器,则必须扩展按钮本身或编写自定义OnClickListener
实现以聚合多个单击侦听器(即OnCLickListeners
的列表)
答案 1 :(得分:0)
您可以使用计数器变量来满足您的要求。请参考下面的代码:
int counter = 0; //This is Global variable
closeButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
++counter;
if (counter == 1)
closeButton.setClickable(false);
else closeButton.setClickable(true);
}
});