我有一个对象,其中的文本循环和显示状态消息。当消息发生变化时,我希望对象的单击事件发生变化,以将您带到与消息相关的活动。
我有一个TextView mTitleView我像这样分配事件。
public void setOnTitleClickListener(OnClickListener listener) {
mTitleView.setOnClickListener(listener);
}
我如何删除点击事件?有一些状态消息没有可操作的区域,所以我想关闭单击事件。我还希望能够循环遍历这些单击事件并正确地处理它们,但我不确定最佳实践。
设置setOnClickListener(null)是在运行时删除单击侦听器的好主意。
还有人评论说,在此之后调用View.hasOnClickListeners()将返回true, NO my friend。
下面是来自android.view.View类的hasOnClickListeners()的实现
public boolean hasOnClickListeners() {
ListenerInfo li = mListenerInfo;
return (li != null && li.mOnClickListener != null);
}
感谢上帝。它检查是否为空。
所以一切都很安全。喜欢:-)