Recherches populaires

Comme pour demander des suggestions de recherche, pour obtenir la vue d'interface utilisateur des recherches populaires, vous devez d'abord obtenir son générateur en procédant comme suit :

  1. Laissez votre classe Activity cible implémenter l'interface GetSearchSuggestionsViewGeneratorCallback ou utiliser la classe interne anonyme.
  2. Remplacez les méthodes onSuccess(SearchSuggestionsViewGenerator) et onError(String) de l'interface GetSearchSuggestionsViewGeneratorCallback.
  3. Construisez l'instance de classe GetTrendingSearchesViewOptions avec le nombre maximal de recherches populaires spécifié. (Facultatif) Cet objet accepte également un objet SearchSuggestionsViewOptions qui fournit des options permettant de personnaliser l'apparence de l'interface utilisateur des suggestions de recherche.
  4. Appelez la fonction SearchInAppsService's getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback).
  5. Une fois le générateur d'interface utilisateur obtenu, vous pouvez envisager de le stocker dans un ViewModel afin de ne pas avoir à le demander à nouveau lorsque l'activité doit être recréée (par exemple, lorsque la configuration a changé pendant l'exécution de l'application).

Exemple de code

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 procédure à suivre pour ajouter une vue d'interface utilisateur des recherches populaires à l'interface utilisateur de votre application est la même que pour la fonctionnalité de suggestions de recherche.

Suivant : Afficher les résultats de recherche