我尝试将点击监听器添加到我的android视图中。
但是,当我添加此代码时:
public interface SwipeableButtonListener {
public void onClick();
public void onSwipe();
}
private SwipeableButtonListener listener = null;
public void setOnClickListener(SwipeableButtonListener listener) {
this.listener = listener;
}
替换当前的侦听器,而不是将新的侦听器添加到已注册的侦听器。
我该怎么改变?创建监听器ArrayList是唯一的方法吗?
本机addOnClickListener是否覆盖现有侦听器或添加到内置侦听器列表?
答案 0 :(得分:1)
尝试这样的事情:
public interface SwipeableButtonListener {
public void onClick();
public void onSwipe();
}
private final List<SwipeableButtonListener> swipeableButtonListeners = new ArrayList<SwipeableButtonListener>();
public void addOnClickListener(SwipeableButtonListener listener) {
this.swipeableButtonListeners.add(listener);
}
答案 1 :(得分:1)
我使用的模式是这样的:
private List<SwipeableButtonListener> listeners;
public void addOnClickListener(SwipeableButtonListener listener)
{
if(listeners == null)
listeners = new ArrayList<SwipeableButtonListener>();
listeners.add(listener);
}
private void fireButtonSwipedListeners()
{
if(listeners != null){
for(SwipeableButtonListener listener: listeners){
listener.onSwipe();}
}
}