从Android的GraphQL中的Shopify管理商店中顺序获取产品的所有图像

时间:2019-02-05 12:07:05

标签: android graphql shopify shopify-app

我正在android studio中使用GraphQL。而现在我只获得一张产品图片。

但是我想分别获取产品的所有图像。

下面是我的Java代码与Java。

1)通过附加产品ID获得产品的产品图片。

querySEC = Storefront.query(rootQuery -> rootQuery
            .node(new ID(moviesList.get(position).getId().toString()), nodeQuery -> nodeQuery
                    .onProduct(productQuery -> productQuery
                            .title()
                            .description()
                            .images(arg -> arg.first(10), imageConnectionQuery -> imageConnectionQuery
                                    .edges(imageEdgeQuery -> imageEdgeQuery
                                            .node(imageQuery -> imageQuery
                                                    .src()
                                            )
                                    )
                            )
                            .variants(arg -> arg.first(10), variantConnectionQuery -> variantConnectionQuery
                                    .edges(variantEdgeQuery -> variantEdgeQuery
                                            .node(productVariantQuery -> productVariantQuery
                                                    .price()
                                                    .title()
                                                    .available()
                                            )
                                    )
                            )
                    )
            )
    );

2)然后我调用此方法在Imageview中设置图像

graphClient.queryGraph(querySEC).enqueue(new GraphCall.Callback<Storefront.QueryRoot>()
    {
        @Override
        public void onResponse(@NonNull GraphResponse<Storefront.QueryRoot> response)
        {
            Storefront.Product product = (Storefront.Product) response.data().getNode();

            List<Storefront.Image> productImages = new ArrayList<>();

            for (final Storefront.ImageEdge imageEdge : product.getImages().getEdges())
            {
                productImages.add(imageEdge.getNode());
            }

            List<Storefront.ProductVariant> productVariants = new ArrayList<>();

            for (final Storefront.ProductVariantEdge productVariantEdge : product.getVariants().getEdges())
            {
                productVariants.add(productVariantEdge.getNode());
            }


            ((MainActivity)context).runOnUiThread(new Runnable()
            {

                @Override
                public void run()
                {

                    for (int i = 0; i <productImages.size() ; i++) {

                        Glide.with(((MainActivity)context))
                                .load(productImages.get(productImages.listIterator().nextIndex()).getSrc())
                                .into((ImageView)
                                        ((MainActivity)context).
                                                findViewById(R.id.img_prdimg));

                    }

                }

            });

        }

        @Override
        public void onFailure(@NonNull GraphError error)
        {


        }

    });

查看此图片以了解问题所在。

enter image description here

0 个答案:

没有答案