2014년 3월 3일 월요일

[ANDROID CODE / 안드로이드] android keyOnDown Evenet

핸드폰에는 키버튼이 존재합니다.

가장 대표적인 키버튼이 볼륨업다운 이겠네요.. 갤럭시나 옵티머스에서는

홈버튼도 있구요..

홈버튼은 이제 잘 사용 안하는 버튼이 되어가고 있죠..

android에서는 소프트웨어 적으로 화면에 메뉴 / 홈 / 뒤로가기 를 지원합니다.

이번에는 keyOnDown EVENT로 바로 물리적 키를 어떻게 사용하는지를

정리합니다.

우선 기본적으로

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){


    return super.onKeyDown(keyCode, event);
}


이렇게 사용하게 됩니다.

여기서 중요한건 keyCode입니다.

keyCode에 발생되는 내용을 읽어서 어떻게 처리가 될지를 결정하게 하면 되는 겁니다.

근데 여기서 중요한 한가지

바로 지금 화면을 표출하고 있는 view가 focus를 가지고 있어여 한다는겁니다.

view.setFocusableInTouchMode(true);

이렇게 해주셔야 합니다.

ex)

onCreate

view.setFocusableInTouchMode(true);

@Override
public boolean onKeyDown(int keyCode, KeyEvent event){

    switch(keyCode){

    case KeyEvent.KEYCODE_BACK:

new AlertDialog.Builder(this).setTitle("종료")

                              .setMessage("종료 하시겠습니까?")
                             
                              .setPositiveButton("예",new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
finish();
}
}).setNegativeButton("아니요", null).show();

return false;

default:

return false;

}//end switch
}

이렇게 하시면 됩니다.

여기서 한가지

힌트 : 만약에 작동시켰는데 볼륨업/다운을 눌렀는데 동작을 하면서 볼륨도 조절이 된다면
return 값을 false로 주시면 됩니다.


댓글 없음:

댓글 쓰기