Generator für UI-Ansichten zu Trendsuchen anfordern
Ähnlich wie beim Anfordern von Suchvorschlägen sollten Sie zuerst den Generator für die UI-Ansicht „Trends bei Suchanfragen“ abrufen. Gehen Sie dazu so vor:
- Implementieren Sie die Schnittstelle
GetSearchSuggestionsViewGeneratorCallback
in der ZielklasseActivity
oder verwenden Sie die anonyme innere Klasse. - Überschreiben Sie die Methoden
onSuccess(SearchSuggestionsViewGenerator)
undonError(String)
derGetSearchSuggestionsViewGeneratorCallback
-Schnittstelle. - Erstelle die
GetTrendingSearchesViewOptions
-Klassen-Instanz mit der angegebenen maximalen Anzahl an angesagten Suchanfragen. Optional: Dieses Objekt kann auch einSearchSuggestionsViewOptions
-Objekt enthalten, mit dem sich das Erscheinungsbild der Benutzeroberfläche für Suchvorschläge anpassen lässt. - Rufen Sie die Funktion
getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback)
vonSearchInAppsService
auf. - Nachdem Sie den UI-Generator erhalten haben, können Sie ihn in einem ViewModel speichern. So müssen Sie den Generator nicht noch einmal anfordern, wenn die Aktivität neu erstellt werden muss (z. B. wenn sich die Konfiguration während der Ausführung der App geändert hat).
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 „Trends bei Suchanfragen hinzufügen“
Die Ansicht „Angesagte Suchanfragen“ wird in der App-UI auf die gleiche Weise hinzugefügt wie die Funktion Suchvorschläge.