Edittext的seterror方法可以用来提示输入显示一个tip来提示用户,比如输入的格式不正确。而有时候tip中显示的内容和背景的颜色相同导致看不到提示的文字,这个是和使用的样式有关。但修改样式既麻烦又有可能在其他地方带来新的问题。
使用Html格式文本
Android提供了Html.fromHtml()
方法,可以将部分html语言片段转换成字符序列对象。同时setError(CharSequence c)方法的参数是字符序列对象,推荐使用Html格式文本加载进去,显示错误。
使用方法也比较简单:
CharSequence html1 = Html.fromHtml("<font color='blue'>出错</font>"); //任意长度内容均可
//Spanned html2 = Html.fromHtml("出错"); //纯文本不可取-内容将不会显示
editText.setError(html1);
//editText.setError(html2);
需要注意的是:
1. 参数必须是CharSequence/Spanned类型变量;
2. fromHtml()方法参数必须包含HTML标准标签;
3. 报错内容不要过长,尽量简短,否则UI叠层架构中会出现覆盖现象,而导致不显示内容。
参考资料:http://bbs.csdn.net/topics/390304638
扩展
关于使用Html语言片段解决的方法比较简单实用,并且我们使用的聊天工具中输入框的表情也可以通过这种方式来解决。稍后会对表情相关的开发做一些研究,感兴趣的朋友可以持续关注。
迫不及待的同学可以先参考一下下面的资料(暂未试验):
http://www.iteedu.com/handset/android/spannablediary/showhtmlimage.php