我已经编写了一个自定义类,该类扩展了ImageView(适用于Android Java)。我想在我创建的类的每个实例中添加一个ClickListener,以执行相同的操作(只需为ImageView设置动画)。
我尝试了几种不同的方法都无济于事。下面的代码是我想要完成的,但是已将其应用于类的实例化对象。
MyCustomImageView fd = new MyCustomImageView(this);
fd.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Animater(fd);
}
});
我尝试在类声明中使用“ implements onClickListener”,然后在类中使用一个公共无效的onClick()方法,这对我不起作用。
我也尝试将上面的代码片段与“ this”而不是“ fd”一起使用,但也没有用。
我对java相对较新,这超出了我的知识范围。您可以提供的任何帮助将不胜感激。
最佳答案
真的很简单。您必须在自定义类中执行此操作:
public class MyCustomImageView extends ImageView{
public MyCustomImageView(Context context){
super(context);
setOnClickListener(theCommonListener);
}
private OnClickListener theCommonListener = new OnClickListener(){
public void onClick(View v) {
// do what you want here
}
}
}
还有其他方法可以做到这一点,但这确实很容易实现和理解。
MyCustomImageView
的每个实例将具有相同的事件侦听器(除非您从外部覆盖它)。