שאילתות חיפוש פופולריות

בדומה לבקשה להצעות לחיפוש, כדי לקבל את תצוגת ממשק המשתמש של החיפושים הפופולריים, צריך קודם לקבל את הגנרטור שלה באמצעות השלבים הבאים:

  1. מאפשרים למחלקה Activity של היעד להטמיע את הממשק של GetSearchSuggestionsViewGeneratorCallback או להשתמש במחלקה פנימית אנונימית.
  2. מבטלים את השיטות onSuccess(SearchSuggestionsViewGenerator) ו-onError(String) של הממשק GetSearchSuggestionsViewGeneratorCallback.
  3. מבצעים קונסטרוקציה של מופע המחלקה GetTrendingSearchesViewOptions עם המספר המקסימלי של החיפושים הפופולריים שצוין. (אופציונלי) האובייקט הזה מקבל גם אובייקט SearchSuggestionsViewOptions שמספק כמה אפשרויות להתאמה אישית של ממשק המשתמש של הצעות החיפוש.
  4. הפעלת הפונקציה getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback) של SearchInAppsService.
  5. אחרי שמקבלים את מחולל ממשק המשתמש, אפשר לשמור אותו ב-ViewModel כדי שלא יהיה צורך לבקש שוב את המחולל כשהפעילות צריכה להיווצר מחדש (למשל, אם ההגדרה השתנתה בזמן שהאפליקציה פועלת).

קוד לדוגמה

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)
    ...
  }
}

הדרך להוסיף תצוגת ממשק משתמש של חיפושים פופולריים לממשק המשתמש של האפליקציה זהה לדרך שבה מוסיפים את התכונה הצעות לחיפוש.

השלב הבא: הצגת תוצאות חיפוש