android-一个按钮中的多onClick侦听器 [英] android- multi onClick listener in one button
问题描述
我已经制作了一个像 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屋!