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