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

試す:

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