1. 서론

안드로이드 스튜디오로 연속 클릭을 감지하는 메서드를 구현하려고 한다.

유니티는 Update() 함수를 지원하여 프레임과 시간을 조작하지만

안드로이드 스튜디오에선 어떻게 구현할지 생각해 보았다.

 

2. 설계

시스템 시간을 이용해 마지막으로 클릭된 시간을 저장 한후 현재시간과 비교하는 방법으로 구현하려한다.

 

3. 구현

 

 일단 클릭 감지를 하기 위해 onCreate()에 리스너를 달아주었다.

1
findViewById(R.id.button).setOnClickListener(v -> TouchContinuously());
cs

 

다음은 연속 클릭을 감지하는 메소드이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    private long lastClickTime = 0// 마지막 클릭 시간
    private int clickTime = 0// 클릭 된 횟수
    private final int TIMES_REQUIRED = 5// 총 필요한 클릭 횟수
    private final int TIME_TIMEOUT = 2000;  // 마지막 클릭후 제한시간
 
    private void TouchContinuously() {
        if (SystemClock.elapsedRealtime() - lastClickTime < TIME_TIMEOUT) {
            clickTime++;
        } else {
            clickTime = 1;
        }
        lastClickTime = SystemClock.elapsedRealtime();
 
        if (clickTime == TIMES_REQUIRED) {
            // TODO 연속 클릭 완료 후 메소드 구현
            Toast.makeText(this"연속 클릭 완료", Toast.LENGTH_SHORT).show();
        }
    }
cs

현재시간 (SystemClock.elapsedRealtime())과 마지막으로 클릭 된 시간(lastClickTime) 의 차이가 제한시간( TIME_TIMEOUT)을 넘는다면 클릭 된 횟수를 1로 초기화하고 넘지않는 다면 클릭 된 횟수를 1회 증가시킨다.

 

그리고 클릭 된 횟수가 필요한 클릭 횟수를 도달 하였을 시 원하는 메소드를 호출 하도록 한다.

 

참고 :https://threeidiotscoding.tistory.com/18

 

[Android Studio] 간단하게 버튼 중복클릭 시간 제한하기

[Android Studio] 간단하게 버튼 중복클릭 시간 제한하기 안드로이드 스튜디오에서 onClick 이벤트가 일어나는 버튼이나 이미지, 텍스트 뷰와 같은 곳에 중복클릭이 일어나지않도록 조건을 두려

threeidiotscoding.tistory.com

 

+ Recent posts