본문 바로가기

IT

EditText에서 IME키패드의 액션처리하는 방법

반응형

 종종 EditText 바로 옆에 버튼을 달아서 이벤트를 따로 처리하는 경우가 종종 있습니다. 사용자들이 대부분 키패드의 '확인'버튼을 눌러도 버튼 클릭이 되는 이벤트 처리가 가능하게 해달라고 요청하는 경우가 있습니다. 아니면 '이동'이라는 글자가 있어서 웹사이트에서의 URL을 바로 입력하고 이동하는 경우가 되겠지요. (UI Experience 처리에 관한 내용이겠네요.)


 이를 처리하기 위해서 간단한 코드입력으로 충분히 해결 가능합니다. 휴대폰마다 정의 되어 있는 버튼이 몇몇 다를지 모르지만 대부분의 IME에서 사용가능한 듯 합니다. (일단 안드로이드 기반의 삼성 휴대폰의 기본 IME에서는 정상적으로 작동되는 것을 확인 했습니다.)


예를 든 코드를 보면,

 위와 같이 IME Option을 지정하면 아래 이미지에서 보는 위치의 버튼의 이미지가 교체가 됩니다. 사용가능한 액션으로는 아래와 같은 값이 존재합니다.


 주의해야 할 점은 이런 버튼액션이 정상적으로 처리되게 하려면 해당 EditText의 속성중에서 android:singleLine 을 "true" 값으로 정의 해 놓아야 한다는 점입니다. 그냥 사용하는 경우 키보드에서 엔터를 치는 듯한 역할을 하게 되는 군요. 고객의 요청에 맞춰서 원하는 버튼으로 지정하면 되겠습니다. 물론 EditorActionListener에서도 동일한 액션ID를 가지고 이벤트 처리를 해주어야 정상적으로 작동하겠지요.


 달랑 setImeOptions만 변경하고 처리하는 리스너에서 동일한 ID로 처리하지 않으면 묵묵무답인 버튼을 감상할 수 있습니다.


예제소스

ExampleIMEOptions.zip


반응형