طلب إنشاء عرض لواجهة المستخدم الخاصة بعمليات البحث الرائجة
على غرار طلب اقتراحات البحث، للحصول على عرض واجهة مستخدم لعمليات البحث الرائجة، يجب أولاً الحصول على أداة الإنشاء باتّباع الخطوات التالية:
- يجب أن تنفّذ فئة
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();
}
}
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)
...
}
}
إضافة عرض واجهة مستخدم لعمليات البحث الرائجة
إنّ طريقة إضافة عرض واجهة مستخدم عمليات البحث الرائجة إلى واجهة مستخدم تطبيقك هي نفسها طريقة إضافة ميزة اقتراحات البحث.