Если edittext в настоящее время сфокусирован, и пользователь щелкает за пределами диалогового окна; Я хочу, чтобы экранная клавиатура исчезла. Я могу заставить его работать, когда DialogFragment отклоняется следующим образом:
InputMethodManager imm;
public View onCreateView(LayoutInflater inflator, ViewGroup container,
Bundle savedInstanceState) {
imm = (InputMethodManager)getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE);
...}
@Override
public void dismiss(){
imm.hideSoftInputFromWindow(getView().getWindowToken(), 0);
super.dismiss();
}
Однако, если я попытаюсь сделать то же самое, когда его отменит, коснувшись внешнего диалога, он не будет работать. Я пытаюсь сделать это, переопределив onCancel следующим образом:
@Override
public void onCancel(DialogInterface dialog){
imm.hideSoftInputFromWindow(getView().getWindowToken(), 0);
super.onCancel(dialog);
}
Функция вызывается, когда происходит событие внешнего касания, но клавиатура не удаляется.