Popüler aramalar

Arama önerileri istemeye benzer şekilde, trend aramalar kullanıcı arayüzü görünümünü almak için öncelikle aşağıdaki adımları uygulayarak oluşturucuyu almalısınız:

  1. Hedef Activity sınıfınızın GetSearchSuggestionsViewGeneratorCallback arayüzünü uygulamasına izin verin veya anonim iç sınıfı kullanın.
  2. GetSearchSuggestionsViewGeneratorCallback arayüzünün onSuccess(SearchSuggestionsViewGenerator) ve onError(String) yöntemlerini geçersiz kılın.
  3. Belirtilen maksimum sayıda trend aramayla GetTrendingSearchesViewOptions sınıfı örneğini oluşturun. (İsteğe bağlı) Bu nesne, arama önerileri kullanıcı arayüzünün görünümünü özelleştirmek için bazı seçenekler sunan bir SearchSuggestionsViewOptions nesnesi de alır.
  4. SearchInAppsService'nin getTrendingSearchesView(GetTrendingSearchesViewOptions, GetSearchSuggestionsViewGeneratorCallback) işlevini çağırın.
  5. Kullanıcı arayüzü oluşturma aracını aldıktan sonra, bunu bir ViewModel'de saklayabilirsiniz. Böylece, etkinliğin yeniden oluşturulması gerektiğinde (örneğin, uygulama çalışırken yapılandırma değiştiğinde) oluşturucuyu tekrar sormanız gerekmez.

Örnek kod

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

Trend olan aramalar kullanıcı arayüzü görünümünü uygulamanızın kullanıcı arayüzüne ekleme yolu, arama önerileri özelliğiyle aynıdır.

Sonraki: Arama sonuçlarını görüntüleme