반응형
디바이스에서의 키 입력에 따라 이벤트 처리는 키 이벤트를 통해 처리할 수 있으며 KeyCode는 어떠한 키가 사용되는지를 구별할 때 사용되고 KeyEvent는 키 입력시 이벤트 정보를 알고자 할때 사용됩니다 키 입력 이벤트는 터치 키패드에서도 동일적용되지만 블루투스 또는 디바이스에서 연결한 키보드 모두 동일하게 이벤트로 처리됩니다
OnKey Listner 인터페이스 Key Code 값
키 코드 | 설명 |
KEYCODE_DPAD_LEFT | 왼쪽 화살표 |
KEYCODE_DPAD_RIGHT | 오른쪽 화살표 |
KEYCODE_DPAD_UP | 위쪽 화살표 |
KEYCODE_DPAD_DOWN | 아래쪽 화살표 |
KEYCODE_DPAD_CENTER | 홈 버튼 |
KEYCODE_CALL | 통화 버튼 |
KEYCODE_ENDCALL | 통화 종료 버튼 |
KEYCODE_BACK | 뒤로 가기 버튼 |
KEYCODE_VOLUME_UP | 볼륨 크게 버튼 |
KEYCODE_VOLUME_DOWN | 볼륨 작게 버튼 |
KEYCODE_0~9 | 숫자 0~9 키 |
KEYCODE_A-Z | 알파벳 A~Z 키 |
KEYCODE_CAMERA | 카메라 버튼 |
위와같이 많은 키 코드로써 구분하고있지만 그중에서도 가장 많이 사용 되는 것은 뒤로가기 버튼으로 onBackPressed() 메서드를 이용하여 이벤트를 처리할 수 있습니다
void onBackPressed()
Back Button 선택시 메시지 띄우는 방법
자바 클래스 파일에서 위와같이 소스코드를 입력하도록 합니다
@Override
public boolean onKeyDown(int keycode, KeyEvent event) {
if(keycode ==KeyEvent.KEYCODE_BACK) {
Toast.makeText(this, "뒤로가기버튼이 눌렸습니다",Toast.LENGTH_LONG).show();
return true;
}
return false;
}
소스코드 입력 후 실행한 화면은 아래와 같습니다
뒤로가기 버튼을 누르게된다면 "뒤로가기버튼일 눌렸습니다" 라는 토스트 문구가 확인됩니다 해당경우에는 뒤로가기 버튼의 본질적인 기능을 막는 기능이 될 수 있으므로 문구만 사용자에게 안내하고, 한번더 누르는 경우 뒤로가기 진행하고자 한다면 아래와같이 소스를 적용합니다
처음 뒤로가기 버튼이 누른 경우 시간을 카운트하기 위해 변수를 선언해주고, 한번 눌렸을 때는 메시지를 표현하고 한번 더 누른 경우 앱의 종료되도록 구성되었습니다
public class MainActivity extends AppCompatActivity {
private final long finishtimeed = 1000;
private long presstime = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onBackPressed() {
long tempTime = System.currentTimeMillis();
long intervalTime = tempTime - presstime;
if (0 <= intervalTime && finishtimeed >= intervalTime)
{
finish();
}
else
{
presstime = tempTime;
Toast.makeText(getApplicationContext(), "한번더 누르시면 앱이 종료됩니다", Toast.LENGTH_SHORT).show();
}
}
}
위와같이 소스 적용시에 아래와같이 구현됩니다
한번 누른 경우는 하단의 Toast 메시지가 확인되고, 두번째 누른경우 앱이 종료된것을 알 수 있습니다
반응형
'안드로이드 스튜디오' 카테고리의 다른 글
안드로이드 구글 플레이스토어 개발자 계정 생성 및 앱 출시 방법 (0) | 2022.11.20 |
---|---|
안드로이드 스튜디오 Out Of Memory 메모리 부족 해결하기 (0) | 2022.05.22 |
안드로이드 스튜디오 onClick 함수 사용 방법 (1) | 2022.05.04 |
안드로이드 스튜디오 에뮬레이터 윈도우 실행 방법 (0) | 2022.05.03 |
안드로이드 스튜디오 자동 import 구문 추가 설정 방법 (0) | 2022.04.30 |
댓글