درخواست ایجاد نمای UI برای جستجوهای پرطرفدار
مشابه درخواست پیشنهادات جستجو، برای دریافت نمای UI جستجوهای پرطرفدار، ابتدا باید با مراحل زیر مولد آن را دریافت کنید:
- اجازه دهید کلاس
Activity
هدف شما رابطGetSearchSuggestionsViewGeneratorCallback
را پیاده سازی کند یا از کلاس داخلی ناشناس استفاده کند. - متدهای
onSuccess(SearchSuggestionsViewGenerator)
وonError(String)
واسطGetSearchSuggestionsViewGeneratorCallback
را لغو کنید. - نمونه کلاس
GetTrendingSearchesViewOptions
را با حداکثر تعداد جستجوهای پرطرفدار مشخص شده بسازید. (اختیاری) این شیء همچنین یک شیSearchSuggestionsViewOptions
می گیرد که گزینه هایی را برای سفارشی کردن ظاهر UI پیشنهادات جستجو ارائه می دهد. - تابع
getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback)
درSearchInAppsService
فراخوانی کنید. - بعد از اینکه مولد رابط کاربری را دریافت کردید، میتوانید آن را در 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 جستجوهای پرطرفدار را اضافه کنید
روش افزودن نمای UI جستجوهای پرطرفدار به رابط کاربری برنامه شما مانند ویژگی پیشنهادات جستجو است.