在一个Activity
里弹出一个带输入框的Dialog
时,碰到这样一个问题:当关闭Dialog
时,返回Activity
后总是会弹出输入键盘。而且即使关闭了也会弹出来,在OndismissListener
或dismiss
之后调用一次隐藏也没有解决。
最后解决方案为重写Dialog
的dismiss
方法。
如下,写一个基类,自定义的输入dialog继承自该类
public class CustomInputDialog extends Dialog {
protected CustomDialog(Context context) {
super(context);
}
protected CustomInputDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
super(context, cancelable, cancelListener);
}
protected CustomInputDialog(Context context, int themeResId) {
super(context, themeResId);
}
@Override
public void dismiss() {
View view = getCurrentFocus();
if(view instanceof TextView){
InputMethodManager mInputMethodManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
mInputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN);
}
super.dismiss();
}
网友评论