我有两个实现 OnTouchListener 的不同对象。
其中一个,使用事件数据修改一些内部数据,另一个更新UI。
问题是,如果我将它们都设置为监听同一个 View ,则只有其中一个处理 OnTouch 事件,而不会调用另一个的 OnTouch 函数。
我读到,如果 OnTouch 函数返回 true,则意味着事件已被处理,但如果我返回 False,则它们的行为不正常。
所以,问题是:
如何将两个或多个监听器对象设置为来自 View 的相同 OnTouch 事件,并允许它们全部接收所有这些事件?
最佳答案
只需让一个监听器为两个对象调用一个方法:
Object uiModifier;
Object internalDataModifier;
//ensure these Objects are initialized
myView.setOnClickListener(new OnTouchListener() {
@Override
public boolean onTouchListener(View v, MotionEvent event)
{
internalDataModifier.handleTouch(v, event);
uiModifier.handleTouch(v, event);
return true;
}
}
并确保 internalDataModifier
和 uiModifier
都有一个 handleTouch(View, MotionEvent)
方法。
关于android - 如何让多个监听器在 Android 中处理相同的 OnTouch 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13111999/