gpt4 book ai didi

java - 可以修改发送给监听器的数据吗?

转载 作者:行者123 更新时间:2023-11-30 10:35:09 25 4
gpt4 key购买 nike

我可以修改发送到 OnTouchListener 的数据吗?我的情况是这样的:

class A extends View{
public A(Context context){
super(context);
}
...
}

在一些 Activity 中我有:

A a = new A(this);
a.setOntouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
// event should be modified
....
}
}

如果发生触摸事件,我想在类 A 中修改它(例如更改事件的坐标),以便在 onTouch 方法中我可以使用修改后的事件。

最佳答案

没有办法修改发送到 onTouch 的内容,我会改用这条路线。请注意,Coordinates 只是一个虚构的名称,我确信存在类似的东西,但如果没有,您可以创建此类。任何可以从触摸监听器中访问的参数也可以发送到该方法,否则您可能必须设置一个类变量以获取您需要在 getModifiedCoordinates 方法内部检查的值

A a = new A(this);
a.setOntouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
Coordinates coords = getModifiedCoordinates(event);
//do something with the coordinates
}
}

...

private Coordinates getModifiedCoordinates(MotionEvent event) {
boolean shouldBeModified = <the conditions you are checking for>;
if(shouldBeModified)
return new Coordinates(modified_x,modified_y);
else
return new Coordinates(event.getX(), event.getY());
}

关于java - 可以修改发送给监听器的数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41349975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com