250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 주택가 잠실새내
- 막내의막무가내 코틀린
- 막내의 막무가내
- 막내의막무가내 rxjava
- 프래그먼트
- 막내의막무가내 플러터
- 막내의 막무가내 알고리즘
- 프로그래머스 알고리즘
- 막내의막무가내 코틀린 안드로이드
- 막내의막무가내
- 막내의막무가내 프로그래밍
- 막내의막무가내 플러터 flutter
- 막내의막무가내 일상
- flutter network call
- 막내의막무가내 안드로이드 코틀린
- Fragment
- 막내의막무가내 SQL
- 막내의막무가내 안드로이드
- 안드로이드
- 막내의막무가내 목표 및 회고
- 막내의막무가내 안드로이드 에러 해결
- 막내의막무가내 알고리즘
- 2022년 6월 일상
- 막내의막무가내 코볼 COBOL
- 주엽역 생활맥주
- 부스트코스
- 막무가내
- 안드로이드 Sunflower 스터디
- 부스트코스에이스
- 안드로이드 sunflower
Archives
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[안드로이드] 버튼 중복클릭 방지하기 본문
728x90
1. 첫번째 방법 클릭리스너 안에 시간초를 재서 구현
private long mLastClickTime = 0;
...
// inside onCreate or so:
findViewById(R.id.button).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// mis-clicking prevention, using threshold of 1000 ms
if (SystemClock.elapsedRealtime() - mLastClickTime < 1000){
return;
}
mLastClickTime = SystemClock.elapsedRealtime();
// do your magic here
}
}
출처 : https://stackoverflow.com/questions/5608720/android-preventing-double-click-on-a-button
2. 클릭리스너로 구현
public abstract class OnSingleClickListener implements View.OnClickListener {
//중복클릭시간차이
private static final long MIN_CLICK_INTERVAL=600;
//마지막으로 클릭한 시간
private long mLastClickTime;
public abstract void onSingleClick(View v);
@Override
public final void onClick(View v) {
//현재 클릭한 시간
long currentClickTime=SystemClock.uptimeMillis();
//이전에 클릭한 시간과 현재시간의 차이
long elapsedTime=currentClickTime-mLastClickTime;
//마지막클릭시간 업데이트
mLastClickTime=currentClickTime;
//내가 정한 중복클릭시간 차이를 안넘었으면 클릭이벤트 발생못하게 return
if(elapsedTime<=MIN_CLICK_INTERVAL)
return;
//중복클릭시간 아니면 이벤트 발생
onSingleClick(v);
}
}
//텍스트뷰에 사용예제
mTextView.setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View v) {
//구현
}
};
728x90
'안드로이드 > 자바 & Previous' 카테고리의 다른 글
[안드로이드] 데이터바인딩 간단하게 적용해보는 공부 (0) | 2019.07.09 |
---|---|
[안드로이드] 선택 다이얼로그 (0) | 2019.06.24 |
[안드로이드] Realm 데이터베이스 정리 (0) | 2019.06.16 |
[안드로이드] otto 라이브러리 ( An event bus by Square ) (0) | 2019.06.16 |
[안드로이드] Spanny 라이브러리 (0) | 2019.06.15 |
Comments