/** * Returns the current list of input filters. * * @attr ref android.R.styleable#TextView_maxLength */ public InputFilter[] getFilters (){ return mInputView.getFilters(); }
/** * Update settings to only allow integer input and set the maximum number of digits allowed in the text field based * on the current value of the {@link #mMax} field. * <p> * This method should only be called once from the constructor. */ private void updateSettings() { // Only allow integer input getEditText().setInputType(InputType.TYPE_CLASS_NUMBER); // Set max number of digits int maxLength = String.valueOf(mMax).length(); // Clone the existing filters so we don't override them, then append our one at the end. InputFilter[] filters = getEditText().getFilters(); InputFilter[] newFilters = new InputFilter[filters.length + 1]; System.arraycopy(filters, 0, newFilters, 0, filters.length); newFilters[newFilters.length - 1] = new InputFilter.LengthFilter(maxLength); getEditText().setFilters(newFilters); }
curFilters = view.getFilters(); if (curFilters != null) { for (idx = 0; idx < curFilters.length; idx++) {
EditText editName = (EditText) findViewById(R.id.editText1); InputFilter filterName = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { if (source==null) return null; return source.toString().replace("{",""); } }; //Get current Input Filter from EditText InputFilter[] oldInputFilter = editName.getFilters(); //Create arrays for new InputFilter InputFilter[] newInputFilter = new InputFilter[oldInputFilter.length+1]; //Copy all old Input Filter to new one System.arraycopy(oldInputFilter, 0, newInputFilter, 0, oldInputFilter.length); //Add your own input filter newInputFilter[newInputFilter.length-1] = filterName; //Set the new Input Filter editName.setFilters(newInputFilter);
public static int getMaxLength(EditText editText) { int maxLength = 0; InputFilter[] filters = editText.getFilters(); if (filters == null || filters.length == 0) { return maxLength; } for (InputFilter filter : filters) { if (filter instanceof InputFilter.LengthFilter) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { InputFilter.LengthFilter lengthFilter = ((InputFilter.LengthFilter) filter); maxLength = lengthFilter.getMax(); } else { //below 21 try { Field field = filter.getClass().getDeclaredField("mMax"); field.setAccessible(true); if (field.isAccessible()) { maxLength = field.getInt(filter); } } catch (Exception e) { e.printStackTrace(); } } } } return maxLength; }
/** * 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 }); } }
InputFilter[] filters = et.getFilters(); InputFilter[] newFilters = Arrays.copyOf(filters, filters.length + 1); newFilters[filters.length] = new AutoWrapFilter(wrapLength);
InputFilter[] filters = editText.getFilters(); if (filters == null) { return false;