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());
}
}
}
废话不说,直接上代码,有需求的小伙伴,直接拷贝使用就好。
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());
}
}
}
相关文章推荐
- Android开发之EditText 详解(addTextChangedListener监听用户输入状态)
- Android开发之EditText 详解(addTextChangedListener监听用户输入状态)
- Android开发之EditText 详解三个方法(addTextChangedListener监听用户输入状态)
- Android EditText监听小数点让用户只能输入小数点后两位
- Android edittext的输入监听设置
- Android EditText截获与监听输入事件
- Android EditText截获与监听输入事件
- Android EditText监听小数点让用户只能输入小数点后两位
- 【转】Android EditText截获与监听输入事件
- Android EditText 监听输入完成
- Android EditText截获与监听输入事件
- 全面解析Android中对EditText输入实现监听的方法
- Android开发 我想设置edittext 输入完成后在调用监听方法
- android Fragment获取EditText 从软键盘中输入下一个action的监听
- 【Android】对EditText输入金额添加限制及监听
- Android EditText监听小数点让用户只能输入小数点后两位
- Android EditText截获与监听输入事件
- Android EditText缴获与监听输入事件
- android 监听EditText输入字符长度
- Android开发中给EditText控件添加TextWatcher监听实现对输入字数的限制