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
  }
 };
相关文章
相关标签/搜索