Существует ли аналог TransformItems в библиотеках Android Java для Алголии? - PullRequest
0 голосов
/ 15 марта 2020

У меня есть сценарий использования, в котором я хотел бы визуализировать изображение, связанное с попаданиями, возвращенными из поиска Algolia, используя библиотеку Algolia Java для Android. В настоящее время я занимаюсь разработкой на P ie. Вот что я делаю:

  1. Я использую com.algolia.instantsearch.core.helpers.Searcher
  2. Я связываю результаты с фрагментом, который имеет макет с атрибуты algolia для изображений

    <ImageView
         algolia:attribute='@{"image_url"}'
    >
    
  3. Проблема в том, что в ответе JSON хранится только имя изображения JPG, которое необходимо отобразить. Мне нужно динамически добавить URL базового сайта и еще несколько указателей пути. Я пытался сделать что-то вроде этого

    algolia:attribute='https://somedomain.com/somepath1/ProductImages/@{"BaseProductId"}/thumbnails/@{"image_url"}

    Но это не было принято.

  4. Я ищу способ преобразовать результаты так я могу создать полный URL-адрес и поместить его в image_url, а затем использовать его в макете, как указано в первом фрагменте кода.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 16 марта 2020

Я решил это, добавив прослушиватель и обновив объект попаданий, как показано ниже.

 searcher.registerResultListener(new AlgoliaResultsListener() {
                 @Override
                 public void onResults(@NonNull SearchResults results, boolean isLoadingMore) {
                     for (int i=0;i<results.hits.length();i++){
                         try {
                                JSONObject obj = results.hits.getJSONObject(i);
                                String image_url_file = obj.getString("image_url");
                                String base_product_id = obj.getString("BaseProductId");
                                String full_image_path = "https://somedomain.com/somPath/ProductImages/"+base_product_id+"/Original/"+image_url_file;
                                results.hits.getJSONObject(i).put("image_url",full_image_path);
                         }catch(Exception exx){

                         }
                     }
                 }
             }
        );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...