본문 바로가기
Android

Android Studio, JAVA] 안드로이드 intent cannot resolve constructor 오류 해결

by 김마리님 2021. 3. 9.

더블탭을 위한 GestureDetector 메서드 구현 중에 발생한 오류이다.

    private void initGestureDetector() {
        gestureDetector = new GestureDetector(this, new GestureDetector.OnGestureListener() {
            @Override
            public boolean onDown(MotionEvent e) {
                return false;
            }

            @Override
            public void onShowPress(MotionEvent e) {

            }

            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                ILog.iLogDebug(TAG, "ㅇㅁㅇ");
...
                return true;
            }

            @Override
            public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                return false;
            }

            @Override
            public void onLongPress(MotionEvent e) {

            }

            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                return false;
            }
        });

        GestureDetector.OnDoubleTapListener listener = new GestureDetector.OnDoubleTapListener() {
            @Override
            public boolean onSingleTapConfirmed(MotionEvent e) {
                return false;
            }

            @Override
            public boolean onDoubleTap(MotionEvent e) {
                ILog.iLogDebug(TAG, "더븤클릭");
...
                return true;
            }

            @Override
            public boolean onDoubleTapEvent(MotionEvent e) {
                return false;
            }
        };

        gestureDetector.setOnDoubleTapListener(listener);
    }

 

이렇게 입력하면 갑자기 생성자 오류가 발생하는데, 해결하고 보니 이유가 너무.. 허무했다.

이 리스너를 프래그먼트 위에 구현했는데, 프래그먼트에서 this는 fragment를 의미하기 때문에 컨텍스트 생성자가 없기 때문이었다 ㅠㅠ

따라서, this를 getContext()로 변경하면 된다.

반응형