如何添加onClickListener而不是替换监听器?

时间:2014-03-17 13:07:24

标签: java android view listener onclicklistener

我尝试将点击监听器添加到我的android视图中。

但是,当我添加此代码时:

public interface SwipeableButtonListener {
    public void onClick();
    public void onSwipe();
}

private SwipeableButtonListener listener = null;


public void setOnClickListener(SwipeableButtonListener listener) {
    this.listener = listener;
}

替换当前的侦听器,而不是将新的侦听器添加到已注册的侦听器。

我该怎么改变?创建监听器ArrayList是唯一的方法吗?

本机addOnClickListener是否覆盖现有侦听器或添加到内置侦听器列表?

2 个答案:

答案 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();}
    }
}