Solicita el generador de vistas de la IU de búsquedas de tendencias
Al igual que en el caso de las sugerencias de búsqueda, para obtener la vista de la IU de tendencias de búsqueda, debes obtener el generador primero mediante los siguientes pasos:
- Permite que tu clase
Activity
objetivo implemente la interfazGetSearchSuggestionsViewGeneratorCallback
o use la clase interna anónima. - Anula los métodos
onSuccess(SearchSuggestionsViewGenerator)
yonError(String)
de la interfazGetSearchSuggestionsViewGeneratorCallback
. - Construye la instancia de clase
GetTrendingSearchesViewOptions
con la cantidad máxima de búsquedas de tendencias especificada. (Opcional) Este objeto también toma un objetoSearchSuggestionsViewOptions
que proporciona algunas opciones para personalizar el aspecto de la IU de las sugerencias de búsqueda. - Llama a la función
getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback)
deSearchInAppsService
. - Después de obtener el generador de IU, puedes considerar almacenarlo en un ViewModel para que no tengas que volver a solicitar el generador cuando se necesite volver a crear la actividad (como cuando la configuración cambió mientras se ejecutaba la app).
Código de muestra
Java
package ...;
...
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.libraries.searchinapps.GetSearchSuggestionsViewGeneratorCallback;
import com.google.android.libraries.searchinapps.GetTrendingSearchesViewOptions;
import com.google.android.libraries.searchinapps.SearchInAppsService;
import com.google.android.libraries.searchinapps.SearchSuggestionsViewGenerator;
...
public class MainActivity extends AppCompatActivity implements GetSearchSuggestionsViewGeneratorCallback {
private SearchInAppsService service;
@Override
public void onSuccess(SearchSuggestionsViewGenerator generator) {
...
}
@Override
public void onError(String errorMessage) {
...
}
@Override
protected void onCreate(Bundle savedInstanceState) {
...
service = SearchInAppsService.create(this);
// Uses the default SearchSuggestionsViewOptions.
service.getTrendingSearchesView(
new GetTrendingSearchesViewOptions().setMaxNumTrends(3), this);
...
}
@Override
public void onDestroy() {
service.shutDown();
super.onDestroy();
}
}
Jetpack Compose
package ...
...
import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.ui.platform.LocalContext
import com.google.android.libraries.searchinapps.GetSearchSuggestionsViewGeneratorCallback
import com.google.android.libraries.searchinapps.GetSearchSuggestionsViewOptions
import com.google.android.libraries.searchinapps.SearchInAppsService
import com.google.android.libraries.searchinapps.SearchSuggestionsViewGenerator
...
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
SearchSuggestionsUI()
}
}
@Composable
fun SearchSuggestionsUI() {
...
var service by remember {
mutableStateOf<SearchInAppsService?>(
SearchInAppsService.create(LocalContext.current))
}
DisposableEffect(Unit) { onDispose { service?.shutDown() } }
val callback =
object : GetSearchSuggestionsViewGeneratorCallback {
override fun onSuccess(generator: SearchSuggestionsViewGenerator) {
...
}
override fun onError(errorMessage: String) {
...
}
}
// Uses the default SearchSuggestionsViewOptions.
var options: GetTrendingSearchesViewOptions =
GetTrendingSearchesViewOptions()
.setMaxNumTrends(3)
service?.getTrendingSearchesView(options, callback)
...
}
}
Se agregó la vista de la IU de las tendencias de búsqueda
La forma de agregar la vista de la IU de búsquedas en tendencia a la IU de tu app es la misma que la función de sugerencias de búsqueda.