Package icyllis.modernui.text
Interface InputFilter
- All Known Implementing Classes:
DigitsInputFilter
,Editor.UndoInputFilter
,InputFilter.LengthFilter
,NumberInputFilter
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
InputFilters can be attached to
Editables
to constrain the
changes that can be made to them.-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic class
This filter will constrain edits not to make the length of the text greater than the specified length. -
Method Summary
Modifier and TypeMethodDescriptionfilter
(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) This method is called when the buffer is going to replace the rangedstart … dend
ofdest
with the new text from the rangestart … end
ofsource
.
-
Method Details
-
filter
@Nullable CharSequence filter(@Nonnull CharSequence source, int start, int end, @Nonnull Spanned dest, int dstart, int dend) This method is called when the buffer is going to replace the rangedstart … dend
ofdest
with the new text from the rangestart … end
ofsource
. Return the CharSequence that you would like to have placed there instead, including an empty string if appropriate, ornull
to accept the original replacement. Be careful to not to reject 0-length replacements, as this is what happens when you delete text. Also beware that you should not attempt to make any changes todest
from this method; you may only examine it for context.Note: If source is an instance of
Spanned
orSpannable
, the span objects in the source should be copied into the filtered result (i.e. the non-null return value).TextUtils.copySpansFrom(icyllis.modernui.text.Spanned, int, int, java.lang.Class<?>, icyllis.modernui.text.Spannable, int)
can be used for convenience if the span boundary indices would be remaining identical relative to the source.
-