안드로이드 개발 질문/답변
(글 수 45,052)
FAQ : 프로그래밍적으로 키보드 숨김/감춤/보기. 액티비티 시작시 키보드 숨김/감춤/보기, EditText선택시 키보드 안뜨게하기 등 소프트 키보드 동작 관련 질문에 대한 답변
EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
2. 키보드 보여주기
EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
위 코드로 안보이는 경우 아래코드도 시도해보세요
- imm.showSoftInputFromInputMethod (editText .getApplicationWindowToken(),InputMethodManager.SHOW_FORCED);
onCreate등에서 제대로 동작하지 않는다면
Handler로 post를 해서 위 코드를 실행시켜보세요.
3. 키보드 토글 - 위 두가지 방법으로 안되는 경우 다음과 같은 코드로 동작하는 경우가 있습니다.
imm.toggleSoftInputFromWindow(editText.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);
4. 액티비티 시작시 자동으로 키보드 보여주기
AndroidManifest.xml의 activity 태그의 속성에 android:windowSoftInputMode="stateVisible" 혹은 "stateAlwaysVisible"삽입
5. 액티비티 시작시 자동으로 키보드 보여주지 않기
AndroidManifest.xml의 activity 태그의 속성에 android:windowSoftInputMode="stateHidden" 혹은 "stateAlwaysHidden" 삽입
6. 에디트 텍스트 선택해도 키보드 안뜨게 하기
EditText xml 속성에서 inputType 을 0으로 주면 안뜹니다.
반복되는 질문을 정리하는 FAQ 작업 진행중입니다. 키보드 동작 관련해서 정리할 글입니다.
잘못된 부분이나 추가할 부분있으면 알려주세요.
2010.12.14 11:16:11
onCreate 함수에서 키보드를 띄우려고 할 경우 2번 방법을 그냥 쓰면 제대로 동작하지 않습니다.
저 코드를 Runnable로 감싼 후 postDelayed 함수를 써서 약간 딜레이를 줘야 정상동작하더군요.
저 코드를 Runnable로 감싼 후 postDelayed 함수를 써서 약간 딜레이를 줘야 정상동작하더군요.
2011.01.26 17:04:56
나의 삽질담...
AndroidManifest.xml 에 키보드 떴을때 뷰를 리사이즈 하기 위해...
android:windowSoftInputMode="adjustResize"
요걸 줬더니 키보드가 자꾸 뜬다. 막고 싶었다.
"adjustResize | stateHidden" 는 에러가 나더라...
혹시나 하는 맘에 android:windowSoftInputMode 라는 속성을 두개해봤지만 두개 줄 순 없더라....
onCreate 에서 온갖 삽질할을 했다. 아 겨우 이거 하나때문에 핸들러 만들어야 하나....ㅠ.ㅠ
결론...
android:windowSoftInputMode="adjustResize|stateHidden"
라고 했더니 잘된다. 아 띄어쓰기 하면 안되는구나...
2011.03.05 02:04:22
dialog에서 소프트키보드띄우기 성공했네요 ㅎㅎㅎㅎ
찾아서 해결어요 참고해보세요 :D
2011.06.10 17:50:54
매번 질문만 하고 눈팅만 하다 용기내서 제가 찾은거 올려봅니다.
1. 영문 키보드로 시작하기 (출처 : http://www.dingpong.net/tt/277)
EditText xml 속성에서android:inputType="textVisiblePassword" orandroid:inputType="textUri" 2. landscpe(가로화면일때..) 키보드가 풀화면으로 차지 않게 하기
==> android:imeOptions="flagNoExtractUi"
헉~ 어제 밤세 해매던.... 그내용...ㅜㅜ