setOnClickListener到所有扩展的ImageViews - Java

时间:2010-08-19 03:45:29

标签: java android event-handling

我有一个我编写的自定义类,它扩展了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()方法,这对我来说无效。

我还尝试使用上面的代码片段而不是“fd”而不是“fd”,这也不起作用。

我对java比较新,这超出了我的知识范围。非常感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

这真的很容易。您必须在自定义类中执行此操作:

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的每个实例都将具有相同的事件侦听器(除非您从外部覆盖它)。