EditText maxLength property not applied properly when setFilters is used

后端 未结 4 1914
暗喜
暗喜 2021-01-03 05:40

When I use setFilter method on an EditText to handle special characters, maxLength property is not working as expected. My code is be

4条回答
  •  猫巷女王i
    2021-01-03 06:02

    Try this code. Based on @Jozua answer

        /**
     * Adds filter to EditText preserving other filters.
     * 
     * @param editText
     * @param filter
     */
    public static void setFilter(EditText editText, InputFilter filter) {
    InputFilter curFilters[] = editText.getFilters();
    
    if (curFilters != null) {
        InputFilter newFilters[] = new InputFilter[curFilters.length + 1];
        System.arraycopy(curFilters, 0, newFilters, 0, curFilters.length);
        newFilters[curFilters.length] = filter;
        editText.setFilters(newFilters);
    } else {
        editText.setFilters(new InputFilter[] { filter });
    }
    }
    

提交回复
热议问题