我想请调用 onTouch()
与方法 onOptionsItemSelected()
在不同类中的方法我想调用,这是代码:
public boolean onTouch(View v, MotionEvent event) {
float downx = 0, downy = 0, upx = 0, upy = 0;
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
downx = event.getX();
downy = event.getY();
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
upx = event.getX();
upy = event.getY();
mCanvas.drawLine(downx, downy, upx, upy, mPaint);
invalidate();
break;
case MotionEvent.ACTION_CANCEL:
break;
default:
break;
}
return true;
}
我想调用的方法 onTouch()
来自:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.LINE_ID:
//i want to call it here
return true;
onOptionsItemSelected()
在MainClass
但是onTouch()
属于 MainClass
的子类.
我该怎么做?我如何调用 drawLine()?
更新:
我试过了:
View v = null; MotionEvent event = null;
MyView sub_class = new MyView(getBaseContext());
sub_class.onTouch(v, event);
但是它崩溃了! 请帮忙!我认为这对某些人来说很容易..他们不在乎:(
最佳答案
你根本不应该调用 onTouch()
。这是 Android 系统在有触摸事件时生成的东西,而不是你应该手动调用的东西。如果不出意外,您将如何计算出要传递给它的 MotionEvent
?
您需要做的是在触摸事件进入时调用您的 onTouch()
方法调用的任何方法。重构您的 onTouch()
以便它调用具有适当参数的方法,在发生触摸事件时表现得适当;然后让您的 onOptionsItemSelected()
也调用该方法。
关于java - 如何调用 onTouch() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27274935/