BUG Fix Log 001 EditText 区别字符编码的显示长度限制
EditText 区别字符编码的显示长度限制
本文采用的是:通过EditText.setFilter()
来放入拓展的Filter(过滤器)来自定义相关功能
首先来看一下原生实现为例
// TextView(EditView)#setFilters
public void setFilters(InputFilter[] filters) {
if (filters == null) {
throw new IllegalArgumentException();
}
mFilters = filters;
if (mText instanceof Editable) {
setFilters((Editable) mText, filters);
}
}
private InputFilter[] mFilters = NO_FILTERS;
private static final InputFilter[] NO_FILTERS = new InputFilter[0];
可以看到在EditText中,xml属性 maxLens功能解析为 代码中的 LengthFilter 实现的
if (maxlength >= 0) {
setFilters(new InputFilter[] {
new InputFilter.LengthFilter(maxlength) }