1.
InputMethodManager imm = getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromInputMethod(edittext.getWindowToken,0);
2.
当键盘隐藏时调用此方法会弹出键盘,当键盘可见时则相反
InputMethodManager imm = getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.
HIDE_IMPLICIT_ONLY
);
3. (特别适用于Fragment)
当要离开当前界面时,可以这样做:
edittext.setInputType(0)
这个会关闭掉与edittext相关联的键盘
可以在onPause调用这个方法,然后在onResume和
onHiddenChanged参数的hidden = false的时候调用
edittext.setInputType(1)回复正常的可以输入状态.
4.
int flags = WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
mContext.getWindow().addFlags(flags);
5.
EditText et;
et.setOnclickListener( new OnClickListener() {
public void onClick(View v) {
setEditTextFocused(true);
}
});
et.setOnFocusChangedListener(new OnFocusChangedListener() {
public void onFocusChanged(View v,boolean isFocued) {
if(v == et) {
if(isFocued) {
((InputMethodManager)
mActivity
.getSystemService(Context.
INPUT_METHOD_SERVICE
))
.showSoftInput(v, InputMethodManager.
SHOW_FORCED
);
}else {
((InputMethodManager)
mActivity
.getSystemService(Context.
INPUT_METHOD_SERVICE
))
.hideSoftInputFromInputMethod(v.getWindowToken(), 0);
}
}
}
}
}
private void setEditTextFocused(boolean isFocused) {
et.setFocusable(isFoucuesd);
et.setFocusableOnTouch(isFocused);
if(isFocused) {
et.requestFocus();
}
}
}
}