מחולל תצוגות מפורטות של ממשק המשתמש לבקשת חיפושים פופולריים
בדומה לבקשה להצגת הצעות חיפוש, כדי לקבל את תצוגת ממשק המשתמש של החיפושים הפופולריים, צריך קודם לקבל את הכלי ליצירת החיפושים הפופולריים. לשם כך, מבצעים את השלבים הבאים:
- מאפשרים למחלקת היעד
Activity
להטמיע את הממשקGetSearchSuggestionsViewGeneratorCallback
או להשתמש במחלקה הפנימית האנונימית. - שינוי ה-methods
onSuccess(SearchSuggestionsViewGenerator)
ו-onError(String)
בממשקGetSearchSuggestionsViewGeneratorCallback
. - יוצרים את המכונה של הכיתה
GetTrendingSearchesViewOptions
עם המספר המקסימלי של חיפושים פופולריים. (אופציונלי) אפשר גם להעביר לאובייקט הזה אובייקטSearchSuggestionsViewOptions
שמספק כמה אפשרויות להתאמה אישית של הממשק של הצעות החיפוש. - קוראים לפונקציה
getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback)
שלSearchInAppsService
. - אחרי שמקבלים את ה-UI generator, כדאי לשקול לאחסן אותו ב-ViewModel כדי שלא תצטרכו לבקש את ה-generator שוב כשצריך ליצור מחדש את הפעילות (למשל, אם ההגדרה השתנתה בזמן שהאפליקציה פועלת).
קוד לדוגמה
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 פיתוח נייטיב
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)
...
}
}
הוספת תצוגת ממשק משתמש של שאילתות חיפוש פופולריות
הדרך להוסיף תצוגת ממשק משתמש של חיפושים פופולריים לממשק המשתמש של האפליקציה היא זהה לתכונה הצעות חיפוש.