別のクラスから 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 は、私が考えることができる唯一のものです。