طلب إنشاء طريقة عرض واجهة المستخدم الخاصة بعمليات البحث الرائجة
على غرار طلب اقتراحات البحث، للحصول على عرض واجهة مستخدِم "عمليات البحث الرائجة"، عليك أولاً الحصول على أداة إنشائها من خلال اتّباع الخطوات التالية:
- يجب السماح لفئة
Activity
المستهدَفة بتنفيذ واجهةGetSearchSuggestionsViewGeneratorCallback
أو استخدام الفئة الداخلية المجهولة الهوية. - إلغاء الطريقتَين
onSuccess(SearchSuggestionsViewGenerator)
وonError(String)
في واجهةGetSearchSuggestionsViewGeneratorCallback
- أنشئ مثيلًا لفئة
GetTrendingSearchesViewOptions
باستخدام الحد الأقصى لعدد عمليات البحث الرائجة المحدّدة. (اختياري) يأخذ هذا العنصر أيضًا عنصرSearchSuggestionsViewOptions
الذي يقدّم بعض الخيارات ل تخصيص مظهر واجهة مستخدم اقتراحات البحث. - استدعاء دالة
getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback)
فيSearchInAppsService
- بعد الحصول على أداة إنشاء واجهة المستخدم، يمكنك التفكير في تخزينها في 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 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)
...
}
}
إضافة عرض واجهة مستخدم عمليات البحث الرائجة
تتشابه طريقة إضافة عرض واجهة المستخدم لعمليات البحث الرائجة إلى واجهة مستخدم التطبيق مع ميزة اقتراحات البحث.