차근차근/Android

액티비티 시작 후 키보드 감추기

예쁜꽃이피었으면 2014. 10. 17. 17:10

http://nnoco.tistory.com/44



액티비티 시작 후 키보드 감추기

안드로이드에서 EditText와 같은 뷰를 가진 액티비티가 시작되면 소프트 키보드가 항상 보이는 채로 시작된다.

키보드가 보이지 않는 채로 액티비티를 시작하고 싶다면

Activity를 상속받은 클래스에서 onResume 메서드를 아래와 같이 오버라이딩 한다.

@Override protected void onResume(){     super.onResume();     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); }


만약 특정 순간(이벤트 처럼) 후에 키보드를 감추거나 보이게 할 때는 아래와 같이 하면 된다.

// InputMethodManager를 가져옴 InputMethodManager imm =     (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); // 감출 때 imm.hideSoftInputFromWindow(ViewName.getWindowToken(), 0); // 보이게 할 때 imm.showSoftInput(ViewName, 0);



+ 2012.06.10 추가

애초에 포커스를 EditText로 주지 않는 방법도 있다.

해당 액티비티의 레이아웃 파일에서 레이아웃에 focusable, focusableInTouchMode 애트리뷰트를 추가하고

값을 true로 주고 requestFocus 태그를 추가한다.


<LinearLayout

        ... 다른 속성들

        android:focusable="true"

        android:focusableInTouchMode="true">

        <requestFocus/>


       ...

</LinearLayout>


이는 포커스를 가질 수 없는 레이아웃에 강제로 포커스를 가지게 하고 포커스를 줌으로써

EditText가 포커스를 가지지 않게하여 소프트 키보드를 보이지 않게 하는 방법이다.


반응형