1. 서론
안드로이드 스튜디오로 연속 클릭을 감지하는 메서드를 구현하려고 한다.
유니티는 Update() 함수를 지원하여 프레임과 시간을 조작하지만
안드로이드 스튜디오에선 어떻게 구현할지 생각해 보았다.
2. 설계
시스템 시간을 이용해 마지막으로 클릭된 시간을 저장 한후 현재시간과 비교하는 방법으로 구현하려한다.
3. 구현
일단 클릭 감지를 하기 위해 onCreate()에 리스너를 달아주었다.
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]' 카테고리의 다른 글
navigation drawer의 icon색이 바뀌지 않는 문제 해결 (0) | 2021.07.30 |
---|---|
토글 버튼(Toggle Button) 만들기 (0) | 2021.07.09 |
startActivityForResult의 deprecated에 따른 새 API사용법(ActivityResultLauncher) (0) | 2021.06.24 |
엑티비티간 데이터 이동 (0) | 2021.06.24 |
액티비티 전환 시 아무것도 나오지 않을 때 (0) | 2021.06.21 |