隐藏键盘密码字段Android

时间:2011-04-14 14:25:08

标签: android keyboard passwords android-edittext

我的自定义对话框中有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事件并抛出错误并且应用程序关闭时,这才会丢失。

知道怎么做到这一点吗?

1 个答案:

答案 0 :(得分:0)

使用它可以在活动开始时隐藏键盘

<activity
    android:name=".views.DrugstoreEditView"
    android:windowSoftInputMode="stateHidden"></activity>

有一个有用的答案:How to hide soft keyboard on android after clicking outside EditText?