Générateur de vue de l'UI pour les recherches populaires
Comme pour demander des suggestions de recherche, pour obtenir l'affichage de l'UI des recherches populaires, vous devez d'abord obtenir son générateur en procédant comme suit:
- Laissez votre classe
Activity
cible implémenter l'interfaceGetSearchSuggestionsViewGeneratorCallback
ou utilisez la classe interne anonyme. - Remplacez les méthodes
onSuccess(SearchSuggestionsViewGenerator)
etonError(String)
de l'interfaceGetSearchSuggestionsViewGeneratorCallback
. - Créez l'instance de classe
GetTrendingSearchesViewOptions
avec le nombre maximal de recherches populaires spécifié. (Facultatif) Cet objet utilise également un objetSearchSuggestionsViewOptions
qui fournit des options pour personnaliser l'apparence de l'interface utilisateur des suggestions de recherche. - Appelez la fonction
getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback)
deSearchInAppsService
. - Une fois que vous avez obtenu le générateur d'UI, vous pouvez envisager de le stocker dans un ViewModel afin de ne pas avoir à demander à nouveau le générateur 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)
...
}
}
Ajouter la vue UI des recherches populaires
La façon d'ajouter la vue de l'interface utilisateur des recherches populaires dans l'interface utilisateur de votre application est la même que pour la fonctionnalité Suggestions de recherche.