
기본적으로 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
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text"
android:text=""
/>
화면 하단에 입력상자인 EditText를 추가한다.
inputType은 어떤 키패드가 뜨게 할 건지 정하는 속성이다.
키패드 역시 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로 바뀐다.