您的位置:首页 > 移动开发 > Android开发

Android 监听EditText的输入状态

2017-07-21 17:44 381 查看
在做登录注册项目的时候,有这样一个需求 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());
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息