Please Enable JavaScript!
Gon[ Enable JavaScript ]

반응형

안드로이드(Android) 경고 - Custom view… overrides onTouchEvent but not performClick

 

환경 : Eclipse Mars, Android 4.2.2

 

View 위젯을 상속받아 클래스를 구현하는데 onTouchEvent() 함수를 작성하는 중 아래와 같은 경고가 나오는 경우가 있습니다.

 

Custom view com/example/samplebooksearchapi/

DrawTouchActivity$DrawTouchView overrides onTouchEvent but not performClick

 

안드로이드(Android) 경고 - Custom view… overrides onTouchEvent but not performClick

 

이것은 사용자 정의 컨트롤이 표준이 아닌 터치 이벤트가 발생할수 있기 때문입니다. 예를 들어서 onTouchEvent() 함수에서 ACTION_DOWN, ACTION_UP 이벤트들이 개입할수 있습니다. 이런 접근성 서비스에 대한 코드 호환성을 유지하기 위해 적절한 조치가 필요한 것입니다. 이런 개입은 터치 스크린을 사용할수 없는 사용자들에 대한 클릭이벤트들이 있습니다. 요구사항을 해결하기 위해서 performClick() 함수를 오버라이딩해서 상위함수 performClick() 를 한번 호출해 주고 ACTION_UP 이벤트에서 performClick() 함수를 호출합니다. 아래 소스를 참조하시기 바랍니다.


@Override
public boolean onTouchEvent(MotionEvent event) {

	int action = event.getAction();
	if (action == MotionEvent.ACTION_MOVE) {
		float x = event.getX();
		float y = event.getY();

		radius = (float) Math.sqrt(Math.pow(x - initX, 2) + Math.pow(y - initY, 2));

	} else if (action == MotionEvent.ACTION_DOWN) {
		initX = event.getX();
		initY = event.getY();
		radius = 1;
		drawing = true;
	} else if (action == MotionEvent.ACTION_UP) {
		drawing = false;
		performClick();
	}
	invalidate();
	return true;
}

@Override
public boolean performClick() {
    return super.performClick();
}

 

 

반응형
Posted by 녹두장군1
,