基于对象类的Android OnClickListener

基于对象类的Android OnClickListener,android,onclicklistener,Android,Onclicklistener,我正在尝试为我的类实现OnClickListener,它只从Object继承。没有视图或活动。。但不知怎的,我错过了一些东西,它不能正常工作。这是我的 class myActivity extends activity { //variables and methods... private class testA implements OnClickListener { public testA() { setO

我正在尝试为我的类实现OnClickListener,它只从Object继承。没有视图或活动。。但不知怎的,我错过了一些东西,它不能正常工作。这是我的

class myActivity extends activity
{
    //variables and methods...

    private class testA implements OnClickListener
    {
        public testA()
        {
            setOnClickListener(this);
        }

        @Override
        public void onClick(View v) {
            //do something
        }
    }
}
结构是这样的。当我只有一个testA类的实例时,这很好用。当我有多个实例时,当我在活动中的任何实例上单击它时,最后创建的类将接收单击事件。所有实例都会收到click事件,但onClick函数下的逻辑仅适用于最后一个实例。我想我在这里遗漏了一个正确的参考

testA构造函数中的setOnClickListener引用myActivity类,这引用testA类实例。我注意到,当我为下一个实例调用setOnClickListener时,myActivity类的侦听器更改为最后创建的testA类。我只是不知道如何解决这个问题。也许可以使用addOnClickListener代替setOnClickListener

有人知道这件事吗?如何使每个创建的对象正确接收单击事件


我希望我能说明我的问题是什么。。谢谢…

我的想法是错误的,只有视图接收onclick事件。所以,将工具用于对象并没有任何效果

我把结构改成了

class myActivity extends activity
{
    //variables and methods...

private void initialize()
{
    setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
            testA test = findTestA(event.getX(), event.getY());
                if (test != null)
                    test.receiveOnTouch(event);
    }
});
}    

private class testA 
{
    public testA()
    {
    }

    public void receiveOnTouch(MotionEvent event) {
        //do something with event
    }
}

}
在myActivity类中附加setOnClickListener()方法。@testA构造函数中的Krylez setOnClickListener()实际上是用于myActivity类的。因为对于我调用setOnClickListener()的每个创建实例,只有最后一个实例从我的活动接收事件。。