android editText最大限制

在使用InputFilter.LengthFilter设置editText的最大字符限制后,有没有办法让editText在onTextChanged达到最大字符数后做出反应? 如果没有,是否有一种简单的方法可以将最大字符数设置为editText并仍然对onTextChanged事件做出反应? 谢谢

在EditText的XML本身中给出以下Attrib,

android:maxLength="20" 

谢谢。

我正在经历同样的问题,一些关于SO的研究让我得到了这个解决方案。 感谢@ njzk2的出色解决方案。 在此发布,以便其他人可以得到答案。

EditText中的maxLength属性实际上是一个InputFilter ,您可以自己编写并从代码中提供。

您可以查看InputFilter.LengthFilter的实现,如果没有溢出,它基本上返回null 。 (见链接 )

稍作修改:创建一个InputFilter.LengthFilter的扩展,在其中调用super并将其与null进行比较,以确定是否需要显示警报。

 editText.setInputFilters(new InputFilter[] { new InputFilter.LengthFilter(max) { public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { CharSequence res = super.filter(source, start, end, dest, dstart, dend); if (res != null) { // Overflow Toast.makeText(this,"OVERFLOW!",Toast.LENGTH_SHORT).show(); } return res; } } });