android-一个按钮中的多onClick侦听器 [英] android- multi onClick listener in one button

查看:24
本文介绍了android-一个按钮中的多onClick侦听器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经制作了一个像 Mybutton.java 这样的自定义组件我在 Mybutton.java 中设置了一个 onclick 监听器.

I have made a custom component like Mybutton.java and I have set an onclick listener in Mybutton.java.

现在,在我的新活动中,我必须调用 Mybutton并在 onclick 监听器中添加内容.

Now, in my new activity, I have to call a Mybutton and add content in onclick listener.

但是,如果我使用 OnClickListener mClickListener = new OnClickListener(){......它将替换旧内容.希望新老听众能一起做.

However, if I use OnClickListener mClickListener = new OnClickListener(){...... it will replace the old content. I hope it can do the old and new listener together.

我搜索了一些信息,发现我可以实现这个方法.经过多次尝试,我仍然遇到错误.

I have searched for some information, found out i can implement this method. After many attempts, I'm still getting errors.

谁能给我一个简单的例子我可以学习修改它吗?

Can anyone give me a simple example that i can learn to modify it?

推荐答案

我认为 Android API 中没有允许多个 onClick 侦听器的 API.您需要一些自定义类来处理单个 onClick() 并传入处理程序以供其调用.像这样的:

I don't think there's an API in the Android API that allows multiple onClick listeners. You'd need some custom class that handles a single onClick() and pass in handlers for it to call. Something like this:

private class CompositeOnClickListener implements View.OnClickListener{
    List<View.OnClickListener> listeners;

    public CompositeOnClickListener(){
        listeners = new ArrayList<View.OnClickListener>();
    }

    public void addOnClickListener(View.OnClickListener listener){
        listeners.add(listener);
    }

    @Override
    public void onClick(View v){
       for(View.OnClickListener listener : listeners){
          listener.onClick(v);
       }
    }
}

设置按钮时,请执行以下操作:

When your setting your buttons, do:

CompositeOnClickListener groupListener = new CompositeOnClickListener();
myButton.setOnClickListener(groupListener);

然后,每当您想添加另一个侦听器时,只需调用

Then, whenever you want to add another listener, just call

groupListener.addOnClickListener(new View.OnClickListener(){
   @Override
   public void onClick(View v){
      **** Custom implementation ****
   }
});

这篇关于android-一个按钮中的多onClick侦听器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆