0

我正在尝试从不同的类调用 onTouch 方法,但我不知道要为 MotionEvent 传递什么。使用 null 会使应用程序强制关闭。这是代码

public final class Touch {

private static final String TAG = Touch.class.getSimpleName();

public boolean onTouchEvent(MotionEvent event, Droid droid, Thread thread) {
if (event.getAction() == MotionEvent.ACTION_DOWN) 
{
    droid.handleActionDown((int)event.getX(), (int)event.getY());
    /*if (event.getY() > getHeight() - 50) 
    {
        thread.setRunning(false);
        ((Activity)getContext()).finish();
    } 
    else 
    {
        Log.d(TAG, "Coords: x=" + event.getX() + ",y=" + event.getY());
    }*/
} 
if (event.getAction() == MotionEvent.ACTION_MOVE) 
{
    // the gestures
    if (droid.isTouched()) 
    {
        // the droid was picked up and is being dragged
        droid.setX((int)event.getX());
        droid.setY((int)event.getY());
    }
} 
if (event.getAction() == MotionEvent.ACTION_UP) 
{
    // touch was released
    if (droid.isTouched()) 
    {
        droid.setTouched(false);
    }
}
return true;
}
}

那就是类,我将如何在主线程中调用它?目前我正在尝试:

public void Touch()
{
    MotionEvent event = null;
    touch.onTouchEvent(event, droid, thread);
}

因为 null 是我唯一能想到的。

4

1 回答 1

0

Try:

MotionEvent event = MotionEvent.obtain(downTime, eventTime, action, x, y, metaState);
于 2012-10-16T14:47:46.410 回答