Added in API level 1

InputFilter


public interface InputFilter

android.text.InputFilter
DateKeyListener For entering dates in a text field. 
DateTimeKeyListener For entering dates and times in the same text field. 
DialerKeyListener For dialing-only text entry

As for all implementations of KeyListener, this class is only concerned with hardware keyboards. 
DigitsKeyListener For digits-only text entry

As for all implementations of KeyListener, this class is only concerned with hardware keyboards. 
InputFilter.AllCaps This filter will capitalize all the lowercase and titlecase letters that are added through edits. 
InputFilter.LengthFilter This filter will constrain edits not to make the length of the text greater than the specified length. 
LoginFilter This class was deprecated in API level 30. Password requirements should not be hardcoded in clients. This class also does not handle non-BMP characters. 
LoginFilter.PasswordFilterGMail This class was deprecated in API level 30. Do not handle a user's Google password. Refer to Google Help for password restriction information. 
LoginFilter.UsernameFilterGMail This class was deprecated in API level 30. Do not encode assumptions about Google account names into client applications. 
LoginFilter.UsernameFilterGeneric This filter rejects characters in the user name that are not compatible with Google login. 
NumberKeyListener For numeric text entry

As for all implementations of KeyListener, this class is only concerned with hardware keyboards. 
TimeKeyListener For entering times in a text field. 


InputFilters can be attached to Editables to constrain the changes that can be made to them.

Summary

Nested classes

class InputFilter.AllCaps

This filter will capitalize all the lowercase and titlecase 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 methods

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.

Public methods

filter

Added in API level 1
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 can be used for convenience if the span boundary indices would be remaining identical relative to the source.

Parameters
source CharSequence

start int

end int

dest Spanned

dstart int

dend int

Returns
CharSequence