내가 여기에 코드의에서 호출 할 onOptionsItemSelected()
나는 방법보다 다른 클래스에 onTouch()
메소드를 호출하는 싶은데요 :호출하는 방법을 onTouch() 메소드
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()을 호출 할 수 있습니까?
UPDATE :
내가 시도 :
View v = null; MotionEvent event = null;
MyView sub_class = new MyView(getBaseContext());
sub_class.onTouch(v, event);
있지만 추락입니다! 도와주세요. 내 생각에 이것은 약간의 ppl에 대해 매우 쉽습니다. 그들은 (
나는 두 명의 터치리스트를 보유하고 있는데, 어떻게 특정 트리거를 트리거 할 수 있습니까? –
@ New2Android 이것은 정확히 요점입니다! 터치가 올 때 onTouch() 메소드가하는 것이 무엇이든보아야합니다. 그런 다음에 그렇게해야합니다. 터치 리스너를 전혀 트리거하지 않아야합니다. 시스템에 의해 트리거됩니다. –
그러면 drawline()을 어떻게 호출 할 수 있습니까? –