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().
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 |
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
|
SearchFragment ()
Bundle createArgs (Bundle args, String query, String title)
Parameters | |
---|---|
args |
Bundle
|
query |
String
|
title |
String
|
Returns | |
---|---|
Bundle |
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 |
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.
|
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.
|
Drawable getBadgeDrawable ()
Returns the badge drawable in the search bar.
Returns | |
---|---|
Drawable |
Intent getRecognizerIntent ()
Returns an intent that can be used to request speech recognition.
Built from the base ACTION_RECOGNIZE_SPEECH
plus
extras:
EXTRA_LANGUAGE_MODEL
set to
LANGUAGE_MODEL_FREE_FORM
EXTRA_PARTIAL_RESULTS
set to trueEXTRA_PROMPT
set to the search bar hint textsetSearchQuery(Intent, boolean)
.
Returns | |
---|---|
Intent |
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. |
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.
|
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. |
void onDestroy ()
Called when the fragment is no longer in use. This is called
after onStop()
and before onDetach()
.
void onPause ()
Called when the Fragment is no longer resumed. This is generally
tied to Activity.onPause
of the containing
Activity's lifecycle.
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. |
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.
void onStart ()
Called when the Fragment is visible to the user. This is generally
tied to Activity.onStart
of the containing
Activity's lifecycle.
void setBadgeDrawable (Drawable drawable)
Sets the badge drawable that will be shown inside the search bar next to the title.
Parameters | |
---|---|
drawable |
Drawable
|
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.
|
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.
|
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.
|
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.
|
void setSearchResultProvider (SearchFragment.SearchResultProvider searchResultProvider)
Sets the search provider that is responsible for returning results for the search query.
Parameters | |
---|---|
searchResultProvider |
SearchFragment.SearchResultProvider
|
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
|
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
|
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.