Tendencias de búsqueda

Al igual que con las sugerencias de búsqueda de solicitudes, para obtener la vista de la IU de las búsquedas populares, primero debes obtener su generador siguiendo estos pasos:

  1. Permite que tu clase Activity de destino implemente la interfaz GetSearchSuggestionsViewGeneratorCallback o use la clase interna anónima.
  2. Anula los métodos onSuccess(SearchSuggestionsViewGenerator) y onError(String) de la interfaz GetSearchSuggestionsViewGeneratorCallback.
  3. Construye la instancia de la clase GetTrendingSearchesViewOptions con la cantidad máxima de búsquedas populares especificada. (Opcional) Este objeto también toma un objeto SearchSuggestionsViewOptions que proporciona algunas opciones para personalizar la apariencia de la IU de sugerencias de búsqueda.
  4. Llama a la función getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback) de SearchInAppsService.
  5. Después de obtener el generador de IU, puedes considerar almacenarlo en un ViewModel para no tener que volver a solicitarlo cuando se deba recrear la actividad (por ejemplo, cuando la configuración haya cambiado mientras se ejecuta 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)
    ...
  }
}

La forma de agregar la vista de la IU de las búsquedas populares a la IU de tu app es la misma que la de la función de sugerencias de búsqueda.

Siguiente: Muestra los resultados de la búsqueda