0

我有一个用例,我想使用适用于 Android 的 Algolia Java 库来呈现与从 Algolia 搜索返回的命中相关联的图像。我目前正在开发 Pie 。这是我正在做的事情:

  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 中,然后在第一个代码片段中所述的布局中使用它。

有什么办法吗?

4

1 回答 1

0

我通过添加一个监听器并更新 hits 对象来解决它,如下所示。

 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){

                         }
                     }
                 }
             }
        );
于 2020-03-16T07:19:46.693 回答