프래그먼트 내부에 EditText가 있는데, 그 자체는 액션 바를 사용합니다. EditText 상자 내부를 터치하면 돋보기 (검색) 아이콘이있는 키 중 하나가있는 소프트 키보드가 나타납니다. 일부 텍스트를 입력하고 검색 키를 클릭하면 onEditorAction에서 입력 된 문자열을 처리 할 수 있지만 소프트 키보드는 계속 표시됩니다. 프로그래밍 방식으로 어떻게 닫을 수 있습니까?프래그먼트에서 소프트 키보드를 닫는 방법
그런데 내가 EditText에 대한 일부 설정을 검색시 자동으로 닫도록 설정할 수 있다면, 여전히 내 키보드가있는 것처럼 소프트 키보드를 메서드 호출로 닫을 수 있는지 알고 싶습니다. 검색 버튼 (소프트 키보드와 관련 없음)과 소프트 키보드가 눌려지면 닫아야합니다.
참고 :이 질문에 답하기 전에 누군가가 이전 질문을 되풀이하기 전에 여러 가지 점에서 소프트 키보드를 숨기는 것에 대해 많은 Q & A를 보았습니다. 많은 답변이 비효율적으로 복잡해 보입니다. 사용자가 키보드를 영구히 숨기거나 아니면 사용자가 EditText 필드를 다시 누를 때까지 일시적으로 닫는 지 여부는 명확하지 않습니다. 또한 일부 답변에는 조각으로 제공되지 않는 메서드에 대한 호출이 필요합니다. 내가 작업 표시 줄 아이콘을 클릭하고 일하고 때 어쩌면 내가 오해 (귀하의 경우 작동하지 않을 필요가 없지 않은가?
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(text.getWindowToken(), 0);
재미있는 부분은 다른 게시물을 검색 할 때 수동으로 안드로이드에 키보드를 숨기는 것이 WTF-why-my-device-is-not-applied 문제라는 것입니다. 의도하지 않은 상황이 발생했을 때 당신을 구제 해 줄 것을 권합니다. 또는 앱의 UX를 변경하십시오. :( – Youngjae