0

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

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 类的实例时,这很好用。当我有多个实例时,当我单击活动中的任何实例时,最后创建的类会收到单击事件。所有实例都收到点击事件,但 onClick 函数下的逻辑仅适用于最后一个。我想我在这里缺少正确的参考。

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

有人对此有想法吗?如何让每个创建的对象正确接收点击事件?

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

4

1 回答 1

0

我的概念是错误的,只有视图接收 OnClickEvent。所以对 Object 使用工具没有效果。

我将结构更改为

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
    }
}

}
于 2013-05-02T08:20:53.640 回答