AI-generated Key Takeaways
-
InputFilters are used to control changes made to editable text within Android applications.
-
They work by attaching to Editables and filtering the text that can be entered or modified.
-
The core functionality lies in the
filtermethod, which allows developers to intercept and modify text input before it's applied. -
Common use cases for InputFilters include limiting text length and enforcing capitalization.
-
Built-in InputFilter implementations like
AllCapsandLengthFilteroffer pre-defined filtering behaviors.
| Known Indirect Subclasses |
InputFilters can be attached to Editables to constrain the
changes that can be made to them.
Nested Class Summary
| class | InputFilter.AllCaps | This filter will capitalize all the lower case letters that are added through edits. | |
| class | InputFilter.LengthFilter | This filter will constrain edits not to make the length of the text greater than the specified length. | |
Public Method Summary
| abstract CharSequence |
Public Methods
public abstract CharSequence filter (CharSequence source, int start, int end, Spanned dest, int dstart, int dend)
This method is called when the buffer is going to replace the
range dstart … dend of dest
with the new text from the range start … end
of source. Return the CharSequence that you would
like to have placed there instead, including an empty string
if appropriate, or null 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 to dest
from this method; you may only examine it for context.
Note: If source is an instance of Spanned or
Spannable, the span objects in the source should be
copied into the filtered result (i.e. the non-null return value).
TextUtils.copySpansFrom(Spanned, int, int, Class, Spannable, int) can be used for convenience.
Parameters
| source | |
|---|---|
| start | |
| end | |
| dest | |
| dstart | |
| dend |