SearchSupportFragment
public
class
SearchSupportFragment
extends Fragment
java.lang.Object | ||
↳ | androidx.fragment.app.Fragment | |
↳ | androidx.leanback.app.SearchSupportFragment |
A fragment to handle searches. An application will supply an implementation
of the SearchSupportFragment.SearchResultProvider
interface to handle the search and return
an ObjectAdapter
containing the results. The results are rendered
into a RowsSupportFragment
, in the same way that they are in a BrowseSupportFragment
.
A SpeechRecognizer object will be created 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.
setSpeechRecognitionCallback(SpeechRecognitionCallback)
is deprecated.
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 |
SearchSupportFragment.SearchResultProvider
Search API to be provided by the application. |
Public constructors | |
---|---|
SearchSupportFragment()
|
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. |
RowsSupportFragment
|
getRowsSupportFragment()
Returns RowsSupportFragment that shows result rows. |
String
|
getTitle()
Returns the title set in the search bar. |
static
SearchSupportFragment
|
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
|
onDestroyView()
Called when the view previously created by |
void
|
onPause()
Called when the Fragment is no longer resumed. |
void
|
onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
This method is deprecated.
use
|
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
|
setSearchAffordanceColors(SearchOrbView.Colors colors)
Sets background color of not-listening state search orb. |
void
|
setSearchAffordanceColorsInListening(SearchOrbView.Colors colors)
Sets background color of listening state search orb. |
void
|
setSearchQuery(String query, boolean submit)
Sets the text of the search query and optionally submits the query. |
void
|
setSearchQuery(Intent intent, boolean submit)
Sets the text of the search query based on the |
void
|
setSearchResultProvider(SearchSupportFragment.SearchResultProvider searchResultProvider)
Sets the search provider that is responsible for returning results for the search query. |
void
|
setSpeechRecognitionCallback(SpeechRecognitionCallback callback)
This method is deprecated. Launching voice recognition activity is no longer supported. App should declare android.permission.RECORD_AUDIO in AndroidManifest file. |
void
|
setTitle(String title)
Sets the title string to be be shown in an empty search bar. |
void
|
startRecognition()
Starts speech recognition. |
Inherited methods | |
---|---|
Public constructors
SearchSupportFragment
public SearchSupportFragment ()
Public methods
createArgs
public static Bundle createArgs (Bundle args, String query, String title)
Parameters | |
---|---|
args |
Bundle |
query |
String |
title |
String |
Returns | |
---|---|
Bundle |
createArgs
public static 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
public 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
public 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
public Drawable getBadgeDrawable ()
Returns the badge drawable in the search bar.
Returns | |
---|---|
Drawable |
getRecognizerIntent
public Intent getRecognizerIntent ()
Returns an intent that can be used to request speech recognition.
Built from the base RecognizerIntent.ACTION_RECOGNIZE_SPEECH
plus
extras:
RecognizerIntent.EXTRA_LANGUAGE_MODEL
set toRecognizerIntent.LANGUAGE_MODEL_FREE_FORM
RecognizerIntent.EXTRA_PARTIAL_RESULTS
set to trueRecognizerIntent.EXTRA_PROMPT
set to the search bar hint text
setSearchQuery(Intent, boolean)
.
Returns | |
---|---|
Intent |
getRowsSupportFragment
public RowsSupportFragment getRowsSupportFragment ()
Returns RowsSupportFragment that shows result rows. RowsSupportFragment is initialized after SearchSupportFragment.onCreateView().
Returns | |
---|---|
RowsSupportFragment |
RowsSupportFragment that shows result rows. |
getTitle
public String getTitle ()
Returns the title set in the search bar.
Returns | |
---|---|
String |
newInstance
public static SearchSupportFragment 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 | |
---|---|
SearchSupportFragment |
A new SearchSupportFragment. |
onCreate
public void onCreate (Bundle savedInstanceState)
Called to do initial creation of a fragment. This is called after
onAttach(Activity)
and before
onCreateView(LayoutInflater, ViewGroup, Bundle)
.
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, add a LifecycleObserver
on the
activity's Lifecycle, removing it when it receives the
Lifecycle.State.CREATED
callback.
Any restored child fragments will be created before the base
Fragment.onCreate
method returns.
Parameters | |
---|---|
savedInstanceState |
Bundle : If the fragment is being re-created from
a previous saved state, this is the state.
|
onCreateView
public 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. This will be called between
onCreate(Bundle)
and onViewCreated(View, Bundle)
.
A default View can be returned by calling Fragment(int)
in your
constructor. Otherwise, this method returns null.
It is recommended to only inflate the layout in this method and move
logic that operates on the returned View to onViewCreated(View, 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
public void onDestroy ()
Called when the fragment is no longer in use. This is called
after onStop()
and before onDetach()
.
onDestroyView
public void onDestroyView ()
Called when the view previously created by onCreateView(LayoutInflater, ViewGroup, Bundle)
has
been detached from the fragment. The next time the fragment needs
to be displayed, a new view will be created. This is called
after onStop()
and before onDestroy()
. It is called
regardless of whether onCreateView(LayoutInflater, ViewGroup, Bundle)
returned a
non-null view. Internally it is called after the view's state has
been saved but before it has been removed from its parent.
onPause
public void onPause ()
Called when the Fragment is no longer resumed. This is generally
tied to Activity.onPause
of the containing
Activity's lifecycle.
onRequestPermissionsResult
public void onRequestPermissionsResult (int requestCode, String[] permissions, int[] grantResults)
This method is deprecated.
use
registerForActivityResult(ActivityResultContract, ActivityResultCallback)
passing
in a ActivityResultContracts.RequestMultiplePermissions
object for the ActivityResultContract
and
handling the result in the callback
.
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 Fragment.requestPermissions(String[], int) . |
permissions |
String : The requested permissions. Never null. |
grantResults |
int : The grant results for the corresponding permissions
which is either PackageManager.PERMISSION_GRANTED
or PackageManager.PERMISSION_DENIED . Never null. |
onResume
public 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
public 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
public void setBadgeDrawable (Drawable drawable)
Sets the badge drawable that will be shown inside the search bar next to the title.
Parameters | |
---|---|
drawable |
Drawable |
setOnItemViewClickedListener
public 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
public 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.
|
setSearchAffordanceColors
public void setSearchAffordanceColors (SearchOrbView.Colors colors)
Sets background color of not-listening state search orb.
Parameters | |
---|---|
colors |
SearchOrbView.Colors : SearchOrbView.Colors.
|
setSearchAffordanceColorsInListening
public void setSearchAffordanceColorsInListening (SearchOrbView.Colors colors)
Sets background color of listening state search orb.
Parameters | |
---|---|
colors |
SearchOrbView.Colors : SearchOrbView.Colors.
|
setSearchQuery
public 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.
|
setSearchQuery
public void setSearchQuery (Intent intent, boolean submit)
Sets the text of the search query based on the RecognizerIntent.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.
|
setSearchResultProvider
public void setSearchResultProvider (SearchSupportFragment.SearchResultProvider searchResultProvider)
Sets the search provider that is responsible for returning results for the search query.
Parameters | |
---|---|
searchResultProvider |
SearchSupportFragment.SearchResultProvider |
setSpeechRecognitionCallback
public void setSpeechRecognitionCallback (SpeechRecognitionCallback callback)
This method is deprecated.
Launching voice recognition activity is no longer supported. App should declare
android.permission.RECORD_AUDIO in AndroidManifest file.
Sets this callback to have the fragment pass speech recognition requests to the activity rather than using a SpeechRecognizer object.
Parameters | |
---|---|
callback |
SpeechRecognitionCallback |
setTitle
public 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
public void startRecognition ()
Starts speech recognition. Typical use case is that activity receives onNewIntent() call when user clicks a MIC button. Note that SearchSupportFragment automatically starts speech recognition at first time created, there is no need to call startRecognition() when fragment is created.
Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2021-04-07 UTC.