基于对象类的Android OnClickListener
我正在尝试为我的类实现OnClickListener,它只从Object继承。没有视图或活动。。但不知怎的,我错过了一些东西,它不能正常工作。这是我的基于对象类的Android OnClickListener,android,onclicklistener,Android,Onclicklistener,我正在尝试为我的类实现OnClickListener,它只从Object继承。没有视图或活动。。但不知怎的,我错过了一些东西,它不能正常工作。这是我的 class myActivity extends activity { //variables and methods... private class testA implements OnClickListener { public testA() { setO
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()的每个创建实例,只有最后一个实例从我的活动接收事件。。