我将@OnClick
侦听器设置为列表项中的视图。在某些情况下,我需要为此视图禁用侦听器,以便列表视图可以处理单击(应该调用OnItemClickListener),然后再次启用它。有没有办法用Butterknife做到这一点?
答案 0 :(得分:4)
我查看了ButterKnife源代码,当您使用OnClickListener
注释时,看起来BK会在视图上生成并设置@OnClick(R.id.some_id)
。
现在,禁用OnClickListener
的唯一方法是将其删除:
item.setOnClickListener(null)
。
如果您再次需要,可以要求ButterKnife
重复注射:
ButterKnife.inject(item);
那个和Ethan提出的解决方案是我能想到的唯一解决方案。
答案 1 :(得分:2)
用Butterknife我不知道。但我知道你可以通过创建一个私有布尔值和一个if语句来做到这一点。 if(yourboolean == true){ //set your onClickListener }else{//do nothing }
答案 2 :(得分:1)
您可以在应用中添加类似shouldListenClick
的布尔标志,并在任意位置设置为true和false。然后,您可以在执行其代码之前检查shouldListenClick
中的@OnClick
或任何其他ButterKnife侦听器调用。