在做登录注册项目的时候,有这样一个需求 1.监听输入框的状态,输入框有一个一键删除的小×号,默认是不显示的,当输入内容的时候显示 2.密码隐藏功能,点击隐藏,如果密码的时候是隐藏状态。因为这是一个普通常用需求,我就分装成一个工具类。
废话不说,直接上代码,有需求的小伙伴,直接拷贝使用就好。
public class EditTextUtils {
//监听输入框的状态,设置小×号的状态
public static void textChangedListener(final EditText edittext, final ImageView imageview){
edittext.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
imageview.setVisibility(View.VISIBLE);
}
@Override
public void afterTextChanged(Editable s) {
if (edittext.getText().toString().equals("")){
imageview.setVisibility(View.INVISIBLE);
}
}
});
}
/**
* 显示或者隐藏密码
* @param
*/
public static void setPasswordisShow(EditText view , Boolean isHidden, TextView textView) {
if (isHidden) {
//设置EditText文本为可见的
view.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
textView.setText("隐藏");
} else {
//设置EditText文本为隐藏的
view.setTransformationMethod(PasswordTransformationMethod.getInstance());
textView.setText("显示");
}
view.postInvalidate();
//切换后将EditText光标置于末尾
CharSequence charSequence = view.getText();
if (charSequence instanceof Spannable) {
Spannable spanText = (Spannable) charSequence;
Selection.setSelection(spanText, charSequence.length());
}
}
}