2014-09-03 3 views
0

일부 편집 필드에 중점을두고 대화 상자가 나타날 때마다 dismiss(); 대화. 나는 클릭 이벤트 후 그것을 제거하는 모든 방법을 시도했지만, 내가 무엇을하더라도 그것은 여전히 ​​나타난다.대화 상자가 닫힌 후에 소프트 키보드가 나타납니다

public static void hideSoftInput(FragmentActivity _activity){ 
    if(_activity.getCurrentFocus() != null){ 
     InputMethodManager inputManager = (InputMethodManager) _activity.getSystemService(Context.INPUT_METHOD_SERVICE); 
     inputManager.hideSoftInputFromWindow(_activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
    } 
} 

public static void hideSoftInput(View _v, Context _c){ 
    if(_v.getWindowToken() != null){ 
     InputMethodManager inputManager = (InputMethodManager) _c.getSystemService(Context.INPUT_METHOD_SERVICE); 
     inputManager.hideSoftInputFromWindow(_v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
    } 
} 
+0

당신은 시도 무엇에 코드를 포함해야한다 >> "나는 그것을 제거하기 위해 모든 방법을 시도했다", 그래서 우리는 당신이 이미 가지고있는 것을 시도 할를 추천을 피할 수 있습니다 전에 시도 ... – 2Dee

+0

다른보기 "requestFocus()"메서드를 사용하는 방법에 대해? 기본으로 edittext에서 포커스를 분산시킵니다. – Yosi199

+0

예 부모 요소에 중점을두고 적절한 xml 태그를 추가했습니다. 그렇다면 여전히 키보드를 보여주고 타이핑 할 수는 있지만 입력 된 텍스트는 아무데도 나타나지 않습니다. – somerandomusername

답변

1

지금은 찾을 수 없지만 여기에있는 다른 사람이 postDelayed 통화에서 키보드를 숨기기 위해 통화를 감쌀 것을 제안했습니다.

다른 많은 옵션이 실패 할 때도 효과가있었습니다. 유일한 것은 그것이 보여 주려고하는 동안 키보드를 억제 할 것이므로 화면의 재미있는 흔들림을 줄 수 있다는 것입니다. postDelayed가 없으면 Android가 대화 상자를 닫은 후에 키보드를 숨기려고 시도합니다. 따라서 궁극적으로 Android에서 타이밍 문제를 해결해야합니다. 이 같은

뭔가 :

view.postDelayed(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     hideKeyboard(); 
    } 
}, 50);