Class Filter
A filter constrains data with a filtering pattern.
Filters are usually created by Filterable
classes.
Filtering operations performed by calling filter(CharSequence)
or
filter(CharSequence, FilterListener)
are
performed asynchronously. When these methods are called, a filtering request
is posted in a request queue and processed later. Any call to one of these
methods will cancel any previous non-executed filtering request.
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
static interface
Listener used to receive a notification upon completion of a filtering operation.protected static class
Holds the results of a filtering operation. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionconvertResultToString
(Object resultValue) Converts a value from the filtered set into a CharSequence.final void
filter
(CharSequence constraint) Starts an asynchronous filtering operation.final void
filter
(CharSequence constraint, Filter.FilterListener listener) Starts an asynchronous filtering operation.protected abstract Filter.FilterResults
performFiltering
(CharSequence constraint) Invoked in a worker thread to filter the data according to the constraint.protected abstract void
publishResults
(CharSequence constraint, Filter.FilterResults results) Invoked in the UI thread to publish the filtering results in the user interface.void
setDelayer
(Filter.Delayer delayer) Provide an interface that decides how long to delay the message for a given query.
-
Constructor Details
-
Filter
public Filter()Creates a new asynchronous filter.
-
-
Method Details
-
setDelayer
Provide an interface that decides how long to delay the message for a given query. Useful for heuristics such as posting a delay for the delete key to avoid doing any work while the user holds down the delete key.- Parameters:
delayer
- The delayer.
-
filter
Starts an asynchronous filtering operation. Calling this method cancels all previous non-executed filtering requests and posts a new filtering request that will be executed later.
- Parameters:
constraint
- the constraint used to filter the data- See Also:
-
filter
Starts an asynchronous filtering operation. Calling this method cancels all previous non-executed filtering requests and posts a new filtering request that will be executed later.
Upon completion, the listener is notified.
- Parameters:
constraint
- the constraint used to filter the datalistener
- a listener notified upon completion of the operation- See Also:
-
performFiltering
Invoked in a worker thread to filter the data according to the constraint. Subclasses must implement this method to perform the filtering operation. Results computed by the filtering operation must be returned as a
Filter.FilterResults
that will then be published in the UI thread throughpublishResults(CharSequence, FilterResults)
.Contract: When the constraint is null, the original data must be restored.
- Parameters:
constraint
- the constraint used to filter the data- Returns:
- the results of the filtering operation
- See Also:
-
publishResults
Invoked in the UI thread to publish the filtering results in the user interface. Subclasses must implement this method to display the results computed in
performFiltering(java.lang.CharSequence)
.- Parameters:
constraint
- the constraint used to filter the dataresults
- the results of the filtering operation- See Also:
-
convertResultToString
Converts a value from the filtered set into a CharSequence. Subclasses should override this method to convert their results. The default implementation returns an empty String for null values or the default String representation of the value.
- Parameters:
resultValue
- the value to convert to a CharSequence- Returns:
- a CharSequence representing the value
-