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

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

  1. بگذارید کلاس Activity هدف شما رابط GetSearchSuggestionsViewGeneratorCallback را پیاده‌سازی کند یا از کلاس داخلی ناشناس استفاده کند.
  2. متدهای onSuccess(SearchSuggestionsViewGenerator) و onError(String) از رابط GetSearchSuggestionsViewGeneratorCallback را بازنویسی کنید.
  3. نمونه‌ای از کلاس GetTrendingSearchesViewOptions را با حداکثر تعداد جستجوهای پرطرفدار مشخص شده بسازید. (اختیاری) این شیء همچنین یک شیء SearchSuggestionsViewOptions می‌گیرد که گزینه‌هایی برای سفارشی‌سازی ظاهر رابط کاربری پیشنهادات جستجو ارائه می‌دهد.
  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();
  }
}

جت‌پک آهنگسازی

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

روش افزودن نمای رابط کاربری جستجوهای پرطرفدار به رابط کاربری برنامه شما، مشابه ویژگی پیشنهادات جستجو است.

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