키 이벤트

OneTwoThree·2022년 8월 7일

부스트코스 키이벤트

키 이벤트 처리하기

기본적으로 onKeyDown메소드를 오버라이딩 해주면 된다.

.java파일에서 빈공간 우클릭 > generate > override method 에서 onKeydown을 찾아준다.

 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            Toast.makeText(this,"시스템 back 버튼 눌림",Toast.LENGTH_LONG).show();

            return true;
        }
        return false;
    }

onCreate 메소드 내에 다음과 같이 정의해준다.
keyCode를 이용해 어떤 키가 눌렸는지 알 수 있다.
back 버튼을 누르면 토스트 메시지를 띄워준다.

그리고 if문 내에서 return true를 하기 때문에 시스템 back 키를 누르면 원래 뒤로 가져야 하는데 뒤로 가지지 않고 toast 메세지만 나온다.
즉 back 키를 다른 역할을 하도록 할 수 있다.

이런 식으로 뒤로 가지는 않고 시스템 back 버튼 눌림이라는 메세지만 표시된다.

EditText 뷰

    <EditText
         android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="text"
        android:text=""
        />

화면 하단에 입력상자인 EditText를 추가한다.
inputType은 어떤 키패드가 뜨게 할 건지 정하는 속성이다.

xml파일로 상태에 따른 배경 지정하기

키패드 역시 background속성을 이용해서 배경을 색이나 다른 이미지로 지정할 수 있다.
또 xml도 사용할 수 있다.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_focused="true"
        android:state_pressed="true"
        android:drawable="@drawable/red"
        />

    <item
        android:drawable="@drawable/blue"
        />
</selector>

상태 state가 focused나 pressed면 red를
아닐 경우 blue를 배경으로 사용하기 위해 xml 파일을 이렇게 만든다.

즉 xml파일의 selector 요소와 내부의 item 요소의 focused라는 어떤 상태를 이용해
상태에 따라 다르게 표시되는 배경화면을 만든 것이다.


참고

iconfinder

여기서 아이콘을 무료로 다운받을 수 있다.

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/my_selector"
        android:ems="10"
        android:inputType="text"
        android:text="" />

이렇게 background 를 xml 파일로 지정해준다.

이런 식으로 입력상자를 클릭하면 표시되는게 blue로 바뀐다.

0개의 댓글