我编写了一个扩展 ImageView 的自定义类(适用于 Android Java)。我想将 ClickListener 添加到我创建的类的每个实例中,该实例将执行相同的操作(仅对 ImageView 进行动画处理。
我尝试了一些不同的方法,但没有成功。下面的代码是我想要完成的,但它被应用于该类的实例化对象。
MyCustomImageView fd = new MyCustomImageView(this);
fd.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Animater(fd);
}
});
我尝试在类声明中使用“implements onClickListener”,然后在类中使用 public void onClick() 方法,但这对我不起作用。
我还尝试将上面的代码 fragment 与“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
的每个实例都将具有相同的事件监听器(除非您从外部覆盖它)。
关于java - setOnClickListener 到所有扩展的 ImageView - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3518581/