有时候常常会用到, 当输入框里有文字的时候, 点击一下就能够删除, 就像下图同样. 有时候是点击后面的图(这里图不是很准确,)是要显示隐藏的密码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 } };