Android setOnTouchListener问题与自定义视图

Android setOnTouchListener问题与自定义视图,android,class,view,Android,Class,View,我已经创建了一个自定义视图-在视图类本身上,我在OnTouch事件期间进行了一些计算-它显示如下: @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { pointJoyPos.set((int)event.

我已经创建了一个自定义视图-在视图类本身上,我在OnTouch事件期间进行了一些计算-它显示如下:

    @SuppressLint("ClickableViewAccessibility") @Override
public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
          pointJoyPos.set((int)event.getX(),(int)event.getY());
          UpdateJoy();
    } else if (event.getAction() == MotionEvent.ACTION_MOVE) {
          pointJoyPos.set((int)event.getX(),(int)event.getY());
          UpdateJoy();
    }  else if (event.getAction() == MotionEvent.ACTION_UP) {
          pointJoyPos.set(pointJoyCentre.x,pointJoyCentre.y);
          UpdateJoy();
    }
    return true;
}
当我将此视图添加到XML中以向用户显示时,我希望显示最新的值,例如pointJoyPos的值,因此我编写了以下内容

THE_CUSTOM_VIEW.setOnTouchListener(new View.OnTouchListener(){

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            ValX = THE_CUSTOM_VIEW.GetValOfX();
            return false;
        }
    }
    );
…其中GetValOfX位于自定义视图类中,用于返回pointJoyPos.X

我遇到的问题是,我得到的值延迟了一步,我认为发生的情况是自定义视图的onTouchEvent在自定义视图本身之前在主活动上运行

我希望这是清楚的

有没有关于如何克服这一问题的建议,以便显示最新的值


谢谢。

如果有人遇到同样的问题,我只是通过创建一个自定义事件来解决这个问题