جستجوهای پرطرفدار

مشابه درخواست پیشنهادات جستجو، برای دریافت نمای UI جستجوهای پرطرفدار، ابتدا باید با مراحل زیر مولد آن را دریافت کنید:

  1. اجازه دهید کلاس Activity هدف شما رابط GetSearchSuggestionsViewGeneratorCallback را پیاده سازی کند یا از کلاس داخلی ناشناس استفاده کند.
  2. متدهای onSuccess(SearchSuggestionsViewGenerator) و onError(String) واسط GetSearchSuggestionsViewGeneratorCallback را لغو کنید.
  3. نمونه کلاس GetTrendingSearchesViewOptions را با حداکثر تعداد جستجوهای پرطرفدار مشخص شده بسازید. (اختیاری) این شیء همچنین یک شی SearchSuggestionsViewOptions می گیرد که گزینه هایی را برای سفارشی کردن ظاهر UI پیشنهادات جستجو ارائه می دهد.
  4. تابع getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback) در SearchInAppsService فراخوانی کنید.
  5. بعد از اینکه مولد رابط کاربری را دریافت کردید، می‌توانید آن را در ViewModel ذخیره کنید تا زمانی که فعالیت باید دوباره ایجاد شود، نیازی به درخواست مجدد ژنراتور نداشته باشید (مثل زمانی که پیکربندی در حین اجرای برنامه تغییر کرده است).

کد نمونه

جاوا

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 جستجوهای پرطرفدار به رابط کاربری برنامه شما مانند ویژگی پیشنهادات جستجو است.

بعدی: نمایش نتایج جستجو