개발놈

[ANDROID] 버튼 더블클릭 방지하는 방법

100009 2022. 7. 22. 15:55
728x90
반응형

문의하기나 이벤트 참여 버튼을 만들 경우

우다다다다다다

광클을 하는 유저들이 종종 있습니다.

뭐 인터넷이 잠깐 느려졌다거나 혹은 터치가 다닥 이뤄지는 경우겠죠

 

보통 이 부분이 크게 문제가 되거나 하진 않지만

동일 데이터가 두개 연속 쌓이는게 가끔은 귀찮아지기도 합니다.

 

이 경우에는 버튼클릭시간을 저장하고 다시 클릭시에 현재시간을 불러와

이를 비교해서 몇초동안 클릭이 되지 않도록 하면 더블클릭을 방지할 수 있습니다.

728x90

 

private Long lastClick = 0L;

insertBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try{
                    if(SystemClock.elapsedRealtime() - lastClick > 5000) {
                        lastClick = SystemClock.elapsedRealtime();//버튼클릭시간저장
                        실행();
                    }else{

    }
                }catch (Exception e){
                }
            }
        });

 

SystemClock.elapsedRealtime() -> 현재시간 불러오기

 

현재시간과 마지막클릭시간이 5초 이상 차이가 날 경우에 if 안쪽을 실행해라 라는 소스입니다.

원하는 시간대에 맞춰 설정해서 쓰시면 됩니다.

 

저 같은 경우엔 연속클릭시에 Toast를 띄우려고 했는데...

안띄우는 게 더 이뻐보이더라구요 ㅋㅋ

시간대를 길게 잡는다면 띄우는 것도 괜찮지 않을라나...싶습니다. ㅋㅋㅋ

 

728x90