Generator für die UI-Ansicht von Suchtrends anfordern
Ähnlich wie bei der Anfrage von Suchvorschlägen müssen Sie zuerst den Generator für die UI-Ansicht der Suchtrends abrufen. Gehen Sie dazu so vor:
- Lassen Sie Ihre Zielklasse
Activitydie SchnittstelleGetSearchSuggestionsViewGeneratorCallbackimplementieren oder verwenden Sie die anonyme innere Klasse. - Überschreiben Sie die Methoden
onSuccess(SearchSuggestionsViewGenerator)undonError(String)derGetSearchSuggestionsViewGeneratorCallback-Schnittstelle. - Erstellen Sie die
GetTrendingSearchesViewOptions-Klasseninstanz mit der angegebenen maximalen Anzahl von Suchtrends. Optional kann dieses Objekt auch einSearchSuggestionsViewOptions-Objekt enthalten, das einige Optionen zum Anpassen der Benutzeroberfläche für Suchvorschläge bietet. - Rufen Sie die
getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback)-Funktion vonSearchInAppsServiceauf. - Nachdem Sie den UI-Generator erhalten haben, können Sie ihn in einem ViewModel speichern, damit Sie ihn nicht noch einmal anfordern müssen, wenn die Aktivität neu erstellt werden muss (z. B. wenn sich die Konfiguration ändert, während die App ausgeführt wird).
Beispielcode
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)
...
}
}
UI-Ansicht für Suchtrends hinzufügen
Das Hinzufügen der UI-Ansicht für Suchtrends in die UI Ihrer App erfolgt auf dieselbe Weise wie bei der Funktion Suchvorschläge.