728x90
안드로이드에서 Button을 구현할 때 대부분 onclick 이벤트를 사용합니다.
버튼이 눌리면 이벤트가 발생하는 것인데 대부분의 기능은 onclick 이벤트만으로
가능하지만 어떠한 특수한 경우에는 버튼을 길게 눌러서 이벤트를 받아야 하는 일이 있습니다.
이럴 때 사용되는 것이 LongClick 이벤트입니다.
LongClick 이벤트라는 것은 말 그대로 버튼을 꾹 누르고 있을 때 발생하는 이벤트로
C언어 및 타 언어와 달리 안드로이드 시스템에서 판단하여 결과에 따라 이벤트를 발생시켜주기
때문에 개발자 입장에서는 굉장히 편리한 기능입니다.
Button test_btn = (Button)findViewById(R.id.btn);
test_btn.setOnLongClickListener(new OnLongClickListener(){
@Override
publick boolean onLongClick(View v){
// 이벤트 코드 구현
return true;
}
}
위 코드와 같이 setOnLongClickListener를 등록하고 버튼을 길게 터치하면 이벤트가 발생합니다.
리턴 값으로 true를 주었는데 onLongClick 메서드 내에서 이벤트 처리가 완료됐으면 true를
이벤트 처리를 하지 않았으면 false를 리턴하면 됩니다.
응용 하나의 버튼에 롱 클릭, 단일 클릭 이벤트 동시 적용
하나의 버튼에 LongClick과 기존의 단일 클릭인 onClick을 동시에 적용하면 어떻게 될까요?
Button test_btn = (Button)findViewById(R.id.btn);
test.btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 단일 클릭 이벤트
}
}
test_btn.setOnLongClickListener(new OnLongClickListener(){
@Override
publick boolean onLongClick(View v){
// 롱 클릭 이벤트
return true;
}
}
위와 같이 한 번만 클릭하면 단일 클릭 이벤트가 발생하고 1초 이상 누르고 있으면
롱 클릭 이벤트가 발생하게 됩니다.
이렇게 버튼에 히든 기능을 넣기 위해서 동시에 사용하기도 합니다.
728x90
반응형
'안드로이드' 카테고리의 다른 글
You need to have compileSdk set to at least 28 in your module build.gradle to migrate to AndroidX 에러 해결 (2) | 2022.04.08 |
---|---|
ActivityNotFoundException 에러 해결 (6) | 2022.04.06 |
ArrayList 응용 (6) | 2022.03.24 |
배열보다 편한 ArrayList (2) | 2022.03.24 |
Hex String to byte 변환 (8) | 2022.03.22 |
댓글