Android TextInputLayout使用,解决setErrorEnabled的bug
来源:互联网 发布:lua 定义有序数组 编辑:程序博客网 时间:2024/06/05 02:36
/** * 内部类实现TextWatcher */ private class MyTextWatcher implements TextWatcher{ private EditText editText; private TextInputLayout textInputLayout; private MyTextWatcher(EditText editText,TextInputLayout textInputLayout) { this.editText = editText; this.textInputLayout = textInputLayout; } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { String text = s.toString(); Log.i(TAG, "onTextChanged: "); if (text.trim().equals("")){ //### textInputLayout.setErrorEnabled(false);//使用这个方法来控制显隐藏,在api 23下有bug 再改成true时 error信息不再显示 textInputLayout.setError(null); //使用这个方法来控制显隐藏 if (textInputLayout.getChildCount() == 2){ textInputLayout.getChildAt(1).setVisibility(View.GONE); } return; } switch (editText.getId()){ case R.id.id_et_phone: if (!RegexUtil.checkMobileNewSimple(text)){ // textInputLayout.setErrorEnabled(true);//使用这个方法来控制显隐藏,在api 23下有bug 再改成true时 error信息不再显示 textInputLayout.setError("请填写正确的手机号码"); //使用这个方法来控制显隐藏 if (textInputLayout.getChildCount() == 2){ textInputLayout.getChildAt(1).setVisibility(View.VISIBLE); } Log.i(TAG, "onTextChanged: 手机号格式不正确"); }else{ //textInputLayout.setErrorEnabled(false); textInputLayout.setError(null); //使用这个方法来控制显隐藏 if (textInputLayout.getChildCount() == 2){ textInputLayout.getChildAt(1).setVisibility(View.GONE); } } break; case R.id.id_et_email: if (!RegexUtil.checkEmail(text)){ // textInputLayout.setErrorEnabled(true); textInputLayout.setError("请填写正确的邮箱"); //使用这个方法来控制显隐藏 if (textInputLayout.getChildCount() == 2){ textInputLayout.getChildAt(1).setVisibility(View.VISIBLE); } Log.i(TAG, "onTextChanged: 邮箱格式不正确"); }else{ // textInputLayout.setErrorEnabled(false); textInputLayout.setError(null); //使用这个方法来控制显隐藏 if (textInputLayout.getChildCount() == 2){ textInputLayout.getChildAt(1).setVisibility(View.GONE); } } break; case R.id.id_et_frsfzhm: if (!RegexUtil.checkIdCardNewSimple(text)){ // textInputLayout.setErrorEnabled(true); textInputLayout.setError("请填写正确的身份证号码"); //使用这个方法来控制显隐藏 if (textInputLayout.getChildCount() == 2){ textInputLayout.getChildAt(1).setVisibility(View.VISIBLE); } Log.i(TAG, "onTextChanged: 身份证号码格式不正确"); }else{ // textInputLayout.setErrorEnabled(false); textInputLayout.setError(null); //使用这个方法来控制显隐藏 if (textInputLayout.getChildCount() == 2){ textInputLayout.getChildAt(1).setVisibility(View.GONE); } } break; } } @Override public void afterTextChanged(Editable s) { String text = s.toString(); } }
id_et_xxx.addTextChangedListener(new MyTextWatcher(id_et_xxx,id_til_xxx));
还有就是 2016年9月14日10:05:50补充
//Android官网bug fix log
https://developer.android.com/topic/libraries/support-library/revisions.html
Changes for Design Support Library:
Fixed an issue where TextInputLayout doesn’t clear error tint after setErrorEnabled(false) on API level 21 - 22 (Issue 202829)
0 0
- Android TextInputLayout使用,解决setErrorEnabled的bug
- android TextInputLayout的使用
- Android:TextInputLayout的简单使用
- 【Android-UI】TextInputLayout的使用
- Android Design Support Library--TextInputLayout的使用
- 【Android - MD】之TextInputLayout的使用
- Android TextInputLayout 使用
- android TextInputLayout使用
- TextInputLayout 的简单使用
- TextInputLayout的使用
- TextInputLayout的使用
- TextInputLayout的使用
- TextInputLayout 的使用
- TextInputLayout的使用
- TextInputLayout&TextInputEditText的使用
- TextInputLayout的简单使用
- TextInputLayout的使用
- TextInputLayout的使用
- 再次认识mysql(一)
- 构造函数和析构函数的调用顺序---引申知识点
- 64.Merge Sorted Array II-合并排序数组 II(容易题)
- MyEclipse2014 HTML页面乱码的问题
- C++ string和c类型字符数组的比较
- Android TextInputLayout使用,解决setErrorEnabled的bug
- Eclipse中.setting目录下文件介绍
- Unity3D 自定义树组件(树形菜单)
- java内存管理
- 编写Javascript 时给自己提个醒!(一)
- Active learning literature Survey
- 使用 CXF 做 webservice 简单例子
- 操作系统概述
- log