Rahul Ramakrishnan Ответов: 0

Как объединить результат двух разных вызовов API в хэш-карту


У меня есть два api-один для извлечения элементов списка, а другой для извлечения изображений на основе первого идентификатора api. Я могу извлечь элементы и отобразить их в recyclerview, но проблема в том, что только для последнего элемента в списке отображается изображение

Что я уже пробовал:

Первый метод вызова api,который извлекает элементы списка и устанавливает элементы в HashMap<string, string>
for (RetrieveItemCatalogListByItemCategoryListItem items : response.body()) {
              combinedHashMap = new HashMap<>();
              combinedHashMap.put("ID", String.valueOf(items.getId()));
              combinedHashMap.put("SUPPLIER_ID", String.valueOf(items.getiSupplierID()));
              combinedHashMap.put("SUPPLIER_STORE_NAME", items.getsSupplierStoreName());
              combinedHashMap.put("ITEM_CATEGORY_ID", String.valueOf(items.getiItemCategoryID()));
              combinedHashMap.put("ITEM_CATEGORY", items.getsItemCategory());
              combinedHashMap.put("PRODUCT_TYPE_ID", String.valueOf(items.getiProductTypeID()));
              combinedHashMap.put("PRODUCT_TYPE", items.getsProductType());
              combinedHashMap.put("AVAILABILITY_ID", String.valueOf(items.getiAvailabilityID()));
              combinedHashMap.put("AVAILABILITY", items.getsAvailability());
              combinedHashMap.put("CURRENT_STOCK", items.getsCurrentStock());
              combinedHashMap.put("CURRENT_PRICE", items.getsCurrentPrice());
              combinedHashMap.put("RETURN_POLICY_ID", String.valueOf(items.getiReturnPolicyID()));
              combinedHashMap.put("RETURN_POLICY", items.getsReturnPolicy());
              combinedHashMap.put("PRODUCT_NAME", items.getsProductName());
              combinedHashMap.put("PRODUCT_SERVICE_NAME", items.getsProductServiceName());
              combinedHashMap.put("PRODUCT_DESCRIPTION", items.getsProductDescription());
              combinedHashMap.put("WORKFLOW_STATUS_ID", String.valueOf(items.getiWorkflowStatusID()));
              combinedHashMap.put("WORKFLOW_STATUS", items.getsWorkflowStatus());
              combinedHashMap.put("CREATE_DATE", items.getsCreateDate());
              combinedHashMap.put("UPDATE_DATE", items.getsUpdateDate());
// Method to get Image based on ID
              retrieveImageSource(items.getiSupplierID());
// List<HashMap<String,String>> 
              productMap.add(combinedHashMap);

            }


Второй метод API для извлечения изображения
for (RetrieveListBySourceTypeListItem items : response.body().getResult()) {
            List<HashMap<String, String>> fileMap = new ArrayList<>();
            combinedHashMap.put("FILE_NAME", items.getsFileName());
            combinedHashMap.put("SOURCE_ID", String.valueOf(items.getiSourceID()));
            combinedHashMap.put("SOURCE_TYPE_ID", String.valueOf(items.getiSourceTypeID()));


          }

          Log.d("Combined_Items", productMap.toString());
          binding.selectedItemsList.setAdapter(new SearchProductResultAdapter(SearchProductResultActivity.this, productMap, new SearchProductResultAdapter.OnItemClick() {
            @Override
            public void onClick(View view, HashMap<String, String> combinedListItem) {
              if (view.getId() == R.id.layoutItem) {
                String id = combinedListItem.get("ID");
                startActivity(new Intent(getApplicationContext(), ShoppingCartActivity.class)
                    .putExtra("ID", combinedListItem.get("ID")));
              }
            }
          }));

0 Ответов