본문 바로가기
안드로이드 Android

[안드로이드] EditText 엔터키 변경 및 동작

by 수표 2018. 5. 6.

안드로이드 EditText 를 사용하다 보면 소프트 키보드의 '엔터'키 부분이 

'검색', '엔터', '확인' 등 여러 형태로 바뀌는 것을 확인 할 수 있습니다.

이번 포스트 에서는 '엔터'키를 바꾸는 방법과 동작에 대해 알아보도록 하겠습니다.




'엔터'키 바꾸기


 1. xml 로 바꾸는 방법

  imeOptions  속성을 설정해 주면 됩니다.

 <EditText

...
android:imeOptions="actionSearch"/> 

 

 2. java 코드 상에서 바꾸는 방법

  setImeOptions() 함수를 사용해 바꿔줄 수 있습니다.

 editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);


  - imeOptions 에 적용될 수 있는 어트리뷰트

  

xml

android:imeOptions="normal"     // 특별한 의미 없음

android:imeOptions="actionGo"     // '이동'의 의미 (예 : 웹 브라우져에서 사용)

android:imeOptions="actionSearch"     // '검색'의 의미 (예 : 네이버 검색창)

android:imeOptions="actionSend"     // '보내기'의 의미 (예 : 메세지 작성시 사용)

android:imeOptions="actionNext"     // '다음'의 의미 (예 : 회원가입시 다음 필드로 이동시)

android:imeOptions="actionDone"     // '완료'의 의미 (예 : 정보 입력창)

android:imeOptions="actionPrevious"     // '이전'의 의미 (예 : 회원가입시 이전 필드로 이동시) - API11부터 가능

 java 코드

EditorInfo.IME_ACTION_NONE    // 특별한 의미 없음

EditorInfo.IME_ACTION_UNSPECIFIED    // 특별한 의미 없음

EditorInfo.IME_ACTION_GO     // '이동'의 의미 (예 : 웹 브라우져에서 사용)

EditorInfo.IME_ACTION_SEARCH     // '검색'의 의미 (예 : 네이버 검색창)

EditorInfo.IME_ACTION_SEND     // '보내기'의 의미 (예 : 메세지 작성시 사용)

EditorInfo.IME_ACTION_NEXT     // '다음'의 의미 (예 : 회원가입시 다음 필드로 이동시)

EditorInfo.IME_ACTION_DONE     // '완료'의 의미 (예 : 정보 입력창)

EditorInfo.IME_ACTION_PREVIOUS     // '이전'의 의미 (예 : 회원가입시 이전 필드로 이동시) - API11부터 가능





'엔터'키 동작 시키기


 

  위에서 바꿔준 엔터키 동작을 위해선 다음과 같이 코드상에 listener를 달아 줘야 합니다.


 editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
switch (actionId) {
case EditorInfo.IME_ACTION_SEARCH:
// 검색 동작
break;
default:
// 기본 엔터키 동작
return false;
}
return true;
}
});


*출처 : http://ccdev.tistory.com/31

댓글