android開發隱藏和顯示密碼

需求:在開發時遇到登錄註冊需要輸入密碼,一般爲了提高客戶體驗,都會有一個按鈕,點擊後可以查看明文密碼。

效果圖:
這裏寫圖片描述

這裏寫圖片描述

解決方法:
第一種:

 //顯示密碼
  iv_hide.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                iv_hide.setVisibility(View.GONE);
                iv_show.setVisibility(View.VISIBLE);
              //顯示密碼關鍵代碼
                et_password                    .setTransformationMethod(HideReturnsTransformationMethod
                                .getInstance());
                // 切換後將EditText光標置於末尾
                CharSequence charSequence = et_password.getText();
                if (charSequence instanceof Spannable) {
                    Spannable spanText = (Spannable) charSequence;
                    Selection.setSelection(spanText, charSequence.length());
                }

            }

        });   
//隱藏密碼
 iv_show.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                iv_show.setVisibility(View.GONE);
                iv_hide.setVisibility(View.VISIBLE);
                //隱藏密碼關鍵代碼
                et_password                     .setTransformationMethod(PasswordTransformationMethod
                                .getInstance());
                // 切換後將EditText光標置於末尾
                CharSequence charSequence = et_password.getText();
                if (charSequence instanceof Spannable) {
                    Spannable spanText = (Spannable) charSequence;
                    Selection.setSelection(spanText, charSequence.length());
                }
            }

        });

第二種方法:

//顯示密碼
  iv_hide.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                iv_hide.setVisibility(View.GONE);
                iv_show.setVisibility(View.VISIBLE);
                //顯示密碼方法
                et_password.setInputType(1); 
                // 切換後將EditText光標置於末尾
                CharSequence charSequence = et_password.getText();
                if (charSequence instanceof Spannable) {
                    Spannable spanText = (Spannable) charSequence;
                    Selection.setSelection(spanText, charSequence.length());
                }

            }

        });   
//隱藏密碼
 iv_show.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                iv_show.setVisibility(View.GONE);
                iv_hide.setVisibility(View.VISIBLE);
                //隱藏密碼
                 et_password.setInputType(129);
                // 切換後將EditText光標置於末尾
                CharSequence charSequence = et_password.getText();
                if (charSequence instanceof Spannable) {
                    Spannable spanText = (Spannable) charSequence;
                    Selection.setSelection(spanText, charSequence.length());
                }
            }

        });

這兩種方法都可以實現,相比第二種可能代碼稍微簡單些,謝謝觀看!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章