Я создал настраиваемое представление - на самом зрения класса, я делаю некоторые расчеты, в ходе мероприятия OnTouch - это выглядит следующим образом:setOnTouchListener проблема с пользовательской точки зрения
@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 пользовательского представления работает в основном действии до самого пользовательского представления.
Надеюсь, это ясно!
Любые предложения о том, как преодолеть это, чтобы отображались последние значения?
спасибо.