Android中設置EditText顯示或隱藏密碼

有時候常常會用到, 當輸入框裏有文字的時候, 點擊一下就能夠刪除, 就像下圖同樣. 有時候是點擊後面的圖(這裏圖不是很準確,)是要顯示隱藏的密碼java

這裏就有兩個東西要了解, 一個就是watch  editText的內容變化, 而後就是這是editText中密碼文字可見.ide

首先, 監聽文字變化,ui

 loginNameEditText = (EditText) findViewById(R.id.loginName);
 //註冊監聽器
 loginNameEditText.addTextChangedListener(myTextWatcher);
  /**
  * 添加文本內容改變監聽器
  */
 private TextWatcher myTextWatcherU = new TextWatcher()
 {
  @Override
  public void onTextChanged(CharSequence s, int start, int before,
    int count)
  {
   // TODO Auto-generated method stub
   // toastMgr.builder.display(s, 0);
   if (s.length() != 0)
   {
    pet_login_user_clear = (Button) findViewById(R.id.pet_login_user_clear);
    pet_login_user_clear.setVisibility(View.VISIBLE);
    pet_login_user_clear
      .setOnClickListener(new View.OnClickListener()
      {
       @Override
       public void onClick(View v)
       {
        // TODO Auto-generated method stub
        loginNameEditText.setText("");
       }
      });
   }
  }
  @Override
  public void beforeTextChanged(CharSequence s, int start, int count,
    int after)
  {
   // TODO Auto-generated method stub
  }
  @Override
  public void afterTextChanged(Editable s)
  {
   // TODO Auto-generated method stub
  }
 };

OK, 上面代碼是判斷出了editText中內容發生變化, 點擊刪除,設置editText中爲空的實現.code

下面是設置密碼可見:it

 // 監聽 密碼 更改密碼是否可見 一樣是註冊這個watcher
 private TextWatcher myTextWatcher = new TextWatcher()
 {
  @Override
  public void beforeTextChanged(CharSequence s, int start, int count,
    int after)
  {
   // TODO Auto-generated method stub
   if (s.length() != 0)
   {
    pet_login_password_clear = (Button) findViewById(R.id.pet_login_password_clear);
    pet_login_password_clear.setVisibility(View.VISIBLE);
    pet_login_password_clear
      .setOnClickListener(new View.OnClickListener()
      {
       @Override
       public void onClick(View v)
       {
        // TODO Auto-generated method stub
        //OK 這裏就設置了密碼可見了
        loginPasswordEditText
          .setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
        //OK這裏這是密碼有不可見
        loginPasswordEditText
         .setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
       }
      });
   }
  }
  @Override
  public void onTextChanged(CharSequence s, int start, int before,
    int count)
  {
   // TODO Auto-generated method stub
  }
  @Override
  public void afterTextChanged(Editable s)
  {
   // TODO Auto-generated method stub
  }
 };
相關文章
相關標籤/搜索