在 Algolia 的 Android Java 库中是否有等效的 transformItems?
Is there a transformItems equivalent in the Android Java Libraries for Algolia?
我有一个用例,我想使用 Android 的 Algolia Java 库渲染与从 Algolia 搜索返回的命中相关联的图像。我目前正在开发 Pie 。这是我正在做的事情:
- 我用com.algolia.instantsearch.core.helpers.Searcher
我将结果绑定到一个片段,该片段的布局具有图像的 algolia 属性
<ImageView
algolia:attribute='@{"image_url"}'
>
麻烦的是响应JSON只存储了需要显示的JPG图片的名称。我需要动态添加基本站点 URL 和更多路径说明符。我试过做这样的事情
algolia:attribute='https://somedomain.com/somepath1/ProductImages/@{"BaseProductId"}/thumbnails/@{"image_url"}
但是没有被接受。
我正在寻找一种方法来转换结果,这样我就可以构建完整的 URL 并将其放置在 image_url 中,然后按照说明在布局中使用它在第一个代码片段中。
有什么办法吗?
我通过添加侦听器并更新命中对象解决了这个问题,如下所示。
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){
}
}
}
}
);
我有一个用例,我想使用 Android 的 Algolia Java 库渲染与从 Algolia 搜索返回的命中相关联的图像。我目前正在开发 Pie 。这是我正在做的事情:
- 我用com.algolia.instantsearch.core.helpers.Searcher
我将结果绑定到一个片段,该片段的布局具有图像的 algolia 属性
<ImageView algolia:attribute='@{"image_url"}' >
麻烦的是响应JSON只存储了需要显示的JPG图片的名称。我需要动态添加基本站点 URL 和更多路径说明符。我试过做这样的事情
algolia:attribute='https://somedomain.com/somepath1/ProductImages/@{"BaseProductId"}/thumbnails/@{"image_url"}
但是没有被接受。
我正在寻找一种方法来转换结果,这样我就可以构建完整的 URL 并将其放置在 image_url 中,然后按照说明在布局中使用它在第一个代码片段中。
有什么办法吗?
我通过添加侦听器并更新命中对象解决了这个问题,如下所示。
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){
}
}
}
}
);