Most visited

Recently visited

SearchFragment

public class SearchFragment
extends Fragment

java.lang.Object
   ↳ android.app.Fragment
     ↳ android.support.v17.leanback.app.SearchFragment


A fragment to handle searches. An application will supply an implementation of the SearchFragment.SearchResultProvider interface to handle the search and return an ObjectAdapter containing the results. The results are rendered into a RowsFragment, in the same way that they are in a BrowseFragment.

If you do not supply a callback via setSpeechRecognitionCallback(SpeechRecognitionCallback), an internal speech recognizer will be used for which your application will need to declare android.permission.RECORD_AUDIO in AndroidManifest file. If app's target version is >= 23 and the device version is >= 23, a permission dialog will show first time using speech recognition. 0 will be used as requestCode in requestPermissions() call.

Speech recognition is automatically started when fragment is created, but not when fragment is restored from an instance state. Activity may manually call startRecognition(), typically in onNewIntent().

Summary

Nested classes

interface SearchFragment.SearchResultProvider

Search API to be provided by the application. 

Inherited XML attributes

From class android.app.Fragment

Inherited constants

From interface android.content.ComponentCallbacks2

Public constructors

SearchFragment()

Public methods

static Bundle createArgs(Bundle args, String query, String title)
static Bundle createArgs(Bundle args, String query)
void displayCompletions(CompletionInfo[] completions)

Displays the completions shown by the IME.

void displayCompletions(List<String> completions)

Displays the completions shown by the IME.

Drawable getBadgeDrawable()

Returns the badge drawable in the search bar.

Intent getRecognizerIntent()

Returns an intent that can be used to request speech recognition.

String getTitle()

Returns the title set in the search bar.

static SearchFragment newInstance(String query)

Creates a search fragment with a given search query.

void onCreate(Bundle savedInstanceState)

Called to do initial creation of a fragment.

View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)

Called to have the fragment instantiate its user interface view.

void onDestroy()

Called when the fragment is no longer in use.

void onPause()

Called when the Fragment is no longer resumed.

void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)

Callback for the result from requesting permissions.

void onResume()

Called when the fragment is visible to the user and actively running.

void onStart()

Called when the Fragment is visible to the user.

void setBadgeDrawable(Drawable drawable)

Sets the badge drawable that will be shown inside the search bar next to the title.

void setOnItemViewClickedListener(OnItemViewClickedListener listener)

Sets an item clicked listener for the results.

void setOnItemViewSelectedListener(OnItemViewSelectedListener listener)

Sets an item selection listener for the results.

void setSearchQuery(Intent intent, boolean submit)

Sets the text of the search query based on the EXTRA_RESULTS in the given intent, and optionally submit the query.

void setSearchQuery(String query, boolean submit)

Sets the text of the search query and optionally submits the query.

void setSearchResultProvider(SearchFragment.SearchResultProvider searchResultProvider)

Sets the search provider that is responsible for returning results for the search query.

void setSpeechRecognitionCallback(SpeechRecognitionCallback callback)

Sets this callback to have the fragment pass speech recognition requests to the activity rather than using an internal recognizer.

void setTitle(String title)

Sets the title string to be be shown in an empty search bar.

void startRecognition()

Starts speech recognition.

Inherited methods

From class android.app.Fragment
From class java.lang.Object
From interface android.content.ComponentCallbacks2
From interface android.view.View.OnCreateContextMenuListener
From interface android.content.ComponentCallbacks

Public constructors

SearchFragment

SearchFragment ()

Public methods

createArgs

Bundle createArgs (Bundle args, 
                String query, 
                String title)

Parameters
args Bundle
query String
title String
Returns
Bundle

createArgs

Bundle createArgs (Bundle args, 
                String query)

Parameters
args Bundle: Bundle to use for the arguments, if null a new Bundle will be created.
query String
Returns
Bundle

displayCompletions

void displayCompletions (CompletionInfo[] completions)

Displays the completions shown by the IME. An application may provide a list of query completions that the system will show in the IME.

Parameters
completions CompletionInfo: A list of completions to show in the IME. Setting to null or empty will clear the list.

displayCompletions

void displayCompletions (List<String> completions)

Displays the completions shown by the IME. An application may provide a list of query completions that the system will show in the IME.

Parameters
completions List: A list of completions to show in the IME. Setting to null or empty will clear the list.

getBadgeDrawable

Drawable getBadgeDrawable ()

Returns the badge drawable in the search bar.

Returns
Drawable

getRecognizerIntent

Intent getRecognizerIntent ()

Returns an intent that can be used to request speech recognition. Built from the base ACTION_RECOGNIZE_SPEECH plus extras:

For handling the intent returned from the service, see setSearchQuery(Intent, boolean).

Returns
Intent

getTitle

String getTitle ()

Returns the title set in the search bar.

Returns
String

newInstance

SearchFragment newInstance (String query)

Creates a search fragment with a given search query.

You should only use this if you need to start the search fragment with a pre-filled query.

Parameters
query String: The search query to begin with.
Returns
SearchFragment A new SearchFragment.

onCreate

void onCreate (Bundle savedInstanceState)

Called to do initial creation of a fragment. This is called after onAttach(Activity) and before onCreateView(LayoutInflater, ViewGroup, Bundle), but is not called if the fragment instance is retained across Activity re-creation (see setRetainInstance(boolean)).

Note that this can be called while the fragment's activity is still in the process of being created. As such, you can not rely on things like the activity's content view hierarchy being initialized at this point. If you want to do work once the activity itself is created, see onActivityCreated(Bundle).

If your app's targetSdkVersion is 23 or lower, child fragments being restored from the savedInstanceState are restored after onCreate returns. When targeting N or above and running on an N or newer platform version they are restored by Fragment.onCreate.

Parameters
savedInstanceState Bundle: If the fragment is being re-created from a previous saved state, this is the state.

onCreateView

View onCreateView (LayoutInflater inflater, 
                ViewGroup container, 
                Bundle savedInstanceState)

Called to have the fragment instantiate its user interface view. This is optional, and non-graphical fragments can return null (which is the default implementation). This will be called between onCreate(Bundle) and onActivityCreated(Bundle).

If you return a View from here, you will later be called in onDestroyView() when the view is being released.

Parameters
inflater LayoutInflater: The LayoutInflater object that can be used to inflate any views in the fragment,
container ViewGroup: If non-null, this is the parent view that the fragment's UI should be attached to. The fragment should not add the view itself, but this can be used to generate the LayoutParams of the view.
savedInstanceState Bundle: If non-null, this fragment is being re-constructed from a previous saved state as given here.
Returns
View Return the View for the fragment's UI, or null.

onDestroy

void onDestroy ()

Called when the fragment is no longer in use. This is called after onStop() and before onDetach().

onPause

void onPause ()

Called when the Fragment is no longer resumed. This is generally tied to Activity.onPause of the containing Activity's lifecycle.

onRequestPermissionsResult

void onRequestPermissionsResult (int requestCode, 
                String[] permissions, 
                int[] grantResults)

Callback for the result from requesting permissions. This method is invoked for every call on requestPermissions(String[], int).

Note: It is possible that the permissions request interaction with the user is interrupted. In this case you will receive empty permissions and results arrays which should be treated as a cancellation.

Parameters
requestCode int: The request code passed in requestPermissions(String[], int).
permissions String: The requested permissions. Never null.
grantResults int: The grant results for the corresponding permissions which is either PERMISSION_GRANTED or PERMISSION_DENIED. Never null.

onResume

void onResume ()

Called when the fragment is visible to the user and actively running. This is generally tied to Activity.onResume of the containing Activity's lifecycle.

onStart

void onStart ()

Called when the Fragment is visible to the user. This is generally tied to Activity.onStart of the containing Activity's lifecycle.

setBadgeDrawable

void setBadgeDrawable (Drawable drawable)

Sets the badge drawable that will be shown inside the search bar next to the title.

Parameters
drawable Drawable

setOnItemViewClickedListener

void setOnItemViewClickedListener (OnItemViewClickedListener listener)

Sets an item clicked listener for the results.

Parameters
listener OnItemViewClickedListener: The item clicked listener to be invoked when an item in the search results is clicked.

setOnItemViewSelectedListener

void setOnItemViewSelectedListener (OnItemViewSelectedListener listener)

Sets an item selection listener for the results.

Parameters
listener OnItemViewSelectedListener: The item selection listener to be invoked when an item in the search results is selected.

setSearchQuery

void setSearchQuery (Intent intent, 
                boolean submit)

Sets the text of the search query based on the EXTRA_RESULTS in the given intent, and optionally submit the query. If more than one result is present in the results list, the first will be used.

Parameters
intent Intent: Intent received from a speech recognition service.
submit boolean: Whether to submit the query.

setSearchQuery

void setSearchQuery (String query, 
                boolean submit)

Sets the text of the search query and optionally submits the query. Either onQueryTextChange or onQueryTextSubmit will be called on the provider if it is set.

Parameters
query String: The search query to set.
submit boolean: Whether to submit the query.

setSearchResultProvider

void setSearchResultProvider (SearchFragment.SearchResultProvider searchResultProvider)

Sets the search provider that is responsible for returning results for the search query.

Parameters
searchResultProvider SearchFragment.SearchResultProvider

setSpeechRecognitionCallback

void setSpeechRecognitionCallback (SpeechRecognitionCallback callback)

Sets this callback to have the fragment pass speech recognition requests to the activity rather than using an internal recognizer.

Parameters
callback SpeechRecognitionCallback

setTitle

void setTitle (String title)

Sets the title string to be be shown in an empty search bar. The title may be placed in a call-to-action, such as "Search title" or "Speak to search title".

Parameters
title String

startRecognition

void startRecognition ()

Starts speech recognition. Typical use case is that activity receives onNewIntent() call when user clicks a MIC button. Note that SearchFragment automatically starts speech recognition at first time created, there is no need to call startRecognition() when fragment is created.

Hooray!