본문 바로가기

나의 플랫폼/안드로이드

[Android] Fragment 에서 showSoftInput이 안먹힐 때

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Fragment로 이동한 후, showSoftInput을 하더라도 키보드가 보이지 않을 때가 있다.


그럴 경우 아래와 같이 requestFocus 함수를 먼저 호출 하자.


EditText someEditText = (EditText)getActivity().findViewById(R.id.someEditText);
someEditText.requestFocus(); 
InputMethodManager mgr =      (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(someEditText, InputMethodManager.SHOW_IMPLICIT);

http://stackoverflow.com/a/8770075/3534559



## 추가


만약 저렇게 requestFocus를 줘도 되지 않을 경우, postDelay를 좀 주세요. 전 30 정도가 적당하더라구요.

아래 같은 형태로 하는 거죠~ 

public void showSoftInput(final View view) {
view.requestFocus();
view.postDelayed(new Runnable() {
@Override
public void run() {
imm.showSoftInput(view,0);
}
},30);
}

참고하세요.