android editText最大限制
在我使用InputFilter.LengthFilter设置editText的最大字符限制后,是否有办法使editText在达到最大字符数后对ContextChanged作出反应?如果没有,是否有一种简单的方法来设置editText的最大字符数,并且仍然在ContextChanged事件中做出反应?感谢XML本身的EditText提供以下属性android editText最大限制,android,input,filter,android-edittext,Android,Input,Filter,Android Edittext,在我使用InputFilter.LengthFilter设置editText的最大字符限制后,是否有办法使editText在达到最大字符数后对ContextChanged作出反应?如果没有,是否有一种简单的方法来设置editText的最大字符数,并且仍然在ContextChanged事件中做出反应?感谢XML本身的EditText提供以下属性 android:maxLength="20" 谢谢。我也遇到了同样的问题,通过一些研究,我得到了这个解决方案。感谢@njzk2提供了出色的解决方案。
android:maxLength="20"
谢谢。我也遇到了同样的问题,通过一些研究,我得到了这个解决方案。感谢@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;
}
}
});
我的最大长度是可变的。。。它取决于一些变量,所以我必须从代码中设置它;FilterArray[0]=新的InputFilter.LengthFilter(变量);setFilters(FilterArray);这就是我所做的,但在达到最大限制后,我无法在用户想要键入时取消事件