Richiedi il generatore di visualizzazioni dell'interfaccia utente per le ricerche di tendenza
Come per richiedere i suggerimenti per le ricerche, per visualizzare la visualizzazione dell'interfaccia utente delle ricerche di tendenza, devi prima recuperare il relativo generatore seguendo questi passaggi:
- Consenti alla tua classe
Activity
target di implementare l'interfacciaGetSearchSuggestionsViewGeneratorCallback
o utilizza la classe interna anonima. - Sostituisci i metodi
onSuccess(SearchSuggestionsViewGenerator)
eonError(String)
dell'interfacciaGetSearchSuggestionsViewGeneratorCallback
. - Costruisci l'istanza della classe
GetTrendingSearchesViewOptions
con il numero massimo di ricerche di tendenza specificato. (Facoltativo) Questo oggetto accetta anche un oggettoSearchSuggestionsViewOptions
che fornisce alcune opzioni per personalizzare l'aspetto dell'interfaccia utente dei suggerimenti di ricerca. - Chiama la funzione
getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback)
diSearchInAppsService
. - Dopo aver ottenuto il generatore di UI, puoi valutare la possibilità di memorizzarlo in un ViewModel in modo da non dover richiedere di nuovo il generatore quando l'attività deve essere ricreata (ad esempio quando la configurazione è cambiata mentre l'app è in esecuzione).
Codice di esempio
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)
...
}
}
Visualizzazione UI Aggiungi ricerche di tendenza
Per aggiungere la visualizzazione dell'interfaccia utente delle ricerche di tendenza all'interfaccia utente dell'app, segui la stessa procedura utilizzata per la funzionalità dei suggerimenti di ricerca.