본문 바로가기
IT, Software/Android, Flutter

Android - EditText Soft Keyboard Disable 시키기

by 기타마을이장 2024. 1. 7.

 

Android 개발을 다시 열심히 시작해보려고 한다.

이번에 처음 시작한 스몰 프로젝트는 바코드 스캔정보를 활용하는 앱개발 프로젝트였다.

문제는 해당 앱이 돌아가는 단말이 일반적인 단말은 아니고 약간 저가형의 Custom Device였다.

그래서 단말에 Built-in 되어 있는 바코드 스캐너가 스캔한 결과를

뭔가 제조사가 제공하는 SDK를 통해서 Event로 전달해 주는 게 아니라...

EditText 같은 입력창으로 그냥 던져주는 방식의 Device였다. 키보드 입력이랑 동일하게 처리해 버리는 것 같다.

 

그렇다 보니 스캔을 해서 값을 가져오면 EditText가 작동하면서 Soft Keyboard가 올라오게 된다.

사실;; 스캔된 숫자값은 중요한 게 아니라 그 숫자로 최종 제품정보를 받아와야 하기에...

굳이 보여줄 필요도... 그리고 키보드가 뜰필요도 전혀 없다.

 

하지만... 구글링의 수많은 방법들을 아무리 시도해도 잘 안되던 것을 코드 달랑 한 줄로 해결했다.

허탈한 마음에 정리차원에서 글을 작성해 둔다.

 

EditText 업데이트 시 Soft Keyboard Disable 시키기

정말 많이 검색되는 솔루션중에 하나는 EditText에 값이 업데이트될 때 이벤트를 캐치해서 처리해 주는 방식이다.

그런데 이 방식은... 내가 EditText를 터치할 때 유용하다.

스캐너가 바코드를 읽어서 그 값을 한글자 한글자 EditText에다가 계속 업데이트하는 상황이다 보니

동작은 하지만 키보드가 떴다 사라졌다를 수차례 반복하면서 깜빡거린다.(오히려 더 이상해 보이는 동작;;;)

 

그래서 좀 더 구글링을 하면서 찾아본 각종 결과로 EditText의 속성들을 이것저것 변경해 봤지만 소용이 없었다.

imeOption을 actionNone으로 해도... inputType을 none으로 해도... 계속 키보드가 뜬다.

 

그리고 마침내... 찾아낸 방법... 정말 코드 한 줄이었다ㅠ

참고로 layout xml로는 설정이 안 되는 것 같다. xml상에는 NULL옵션이 없다;;;

mEditText.setInputType(InputType.TYPE_NULL);

 

이번에 얻은 또 다른 교훈...

개발을 너무 오랜만에 다시 시작해서 그런 건지;;; 구글링 하는 감도 떨어진 것 같다ㅠ

검색은 최근 1년으로만 하자;;;

 

참조한 사이트 : https://copyprogramming.com/howto/disable-the-android-keyboard

반응형

댓글