Richiedere il generatore di visualizzazioni dell'interfaccia utente delle ricerche di tendenza
Analogamente ai suggerimenti per le ricerche, per visualizzare l'interfaccia utente delle ricerche di tendenza, devi prima ottenere il generatore seguendo questi passaggi:
- Consenti alla classe
Activitydi destinazione di implementare l'interfacciaGetSearchSuggestionsViewGeneratorCallbacko utilizza la classe interna anonima. - Esegui l'override dei metodi
onSuccess(SearchSuggestionsViewGenerator)eonError(String)dell'interfacciaGetSearchSuggestionsViewGeneratorCallback. - Costruisci l'istanza della classe
GetTrendingSearchesViewOptionscon il numero massimo di ricerche di tendenza specificato. (Facoltativo) Questo oggetto accetta anche un oggettoSearchSuggestionsViewOptionsche fornisce alcune opzioni per personalizzare l'aspetto della UI dei suggerimenti di ricerca. - Chiama la funzione
getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback)diSearchInAppsService. - Dopo aver ottenuto il generatore di UI, puoi valutare di memorizzarlo in un ViewModel in modo da non doverlo richiedere di nuovo quando l'attività deve essere ricreata (ad esempio quando la configurazione è cambiata durante l'esecuzione dell'app).
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)
...
}
}
Aggiungere la visualizzazione dell'interfaccia utente delle ricerche di tendenza
Il modo per aggiungere la visualizzazione dell'UI delle ricerche di tendenza nell'UI dell'app è lo stesso della funzionalità suggerimenti di ricerca.