我已经编写了一个自定义类,该类扩展了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的每个实例将具有相同的事件侦听器(除非您从外部覆盖它)。

10-08 12:08