Скрыть поле пароля клавиатуры Android - PullRequest
0 голосов
/ 14 апреля 2011

У меня есть 2 поля редактирования в моем пользовательском диалоге, который вызывается из ACtivity, среди них 1 имеет тип "trxtPassword" и другой тип "текст". Клавиатура не появляется в поле ввода типа «текст», а просто появляется в текстовом поле «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 голосов
/ 14 апреля 2011

Используйте это, чтобы скрыть клавиатуру при запуске активности

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

И есть один полезный ответ: Как скрыть программную клавиатуру на андроиде после нажатия вне EditText?

...