我的自定义对话框中有2个编辑区域,从ACtivity调用,其中1个是“trxtPassword”,另一个是“text”类型。键盘不会出现在“文本”类型的编辑框中,但只是出现在“textPassword”编辑文本中,然后才会出现。
我尝试了以下内容,但没有任何作用:
InputMethodManager inputManager = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
//inputManager.hideSoftInputFromWindow(txt_username.getWindowToken(), 0);
//inputManager.hideSoftInputFromWindow(txt_password.getWindowToken(), 0);
如果我制作txt_password.setInputType(0);其他人可以轻松查看密码,因此无法使用。
还有什么可以实现这个目标?我做了将onLostFocus捕获到txt
txt_password.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus == false) {
InputMethodManager inputManager = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(LoginDialog.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
}
}
});
但不幸的是,一旦进入,如果我点击其他地方或任何复选框,那么焦点也不会从txt_password字段中丢失。只有当我单击另一个editText然后触发onFocusChange事件并抛出错误并且应用程序关闭时,这才会丢失。
知道怎么做到这一点吗?
答案 0 :(得分:0)
使用它可以在活动开始时隐藏键盘
<activity
android:name=".views.DrugstoreEditView"
android:windowSoftInputMode="stateHidden"></activity>
有一个有用的答案:How to hide soft keyboard on android after clicking outside EditText?