带页脚的Recyclerview无法删除最后一个项目

阿迪蒂亚·维阿斯·拉汉(Aditya vyas-lakhan)

我在页脚上使用了recyclerview,一切正常。但我无法删除最后一项。假设现在我们在列表中有2种产品,如果用户要删除一种产品,那么1种产品将保留在其中,recyclerview那么我无法删除该剩余产品。

当我有一项时,它显示PACK ID为空

genericViewHolder.removes.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        packid=currentItem.getCart_Product_packid();
                        System.out.println("PACK ID"+packid);
                        deletetocart();
                    }
                });

适配器

public class HeaderFooterAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

        private static final int TYPE_HEADER = 0;
        private static final int TYPE_ITEM = 1;
        private static final int TYPE_FOOTER = 2;
        private ArrayList<CartModel> idlistData;
        private AQuery aQuery;

        Context context;

        public HeaderFooterAdapter(Context context,ArrayList<CartModel> idlistData) {
            this.context = context;
            this.idlistData = idlistData;
            aQuery = new AQuery(this.context);
        }

        @Override
        public RecyclerView.ViewHolder onCreateViewHolder (ViewGroup parent, int viewType) {
            if(viewType == TYPE_HEADER) {
                View v = LayoutInflater.from (parent.getContext ()).inflate (R.layout.item_header, parent, false);
                return new HeaderViewHolder (v);
            } else if(viewType == TYPE_FOOTER) {
                View v = LayoutInflater.from (parent.getContext ()).inflate (R.layout.item_footer, parent, false);
                return new FooterViewHolder (v);
            } else if(viewType == TYPE_ITEM) {
                View v = LayoutInflater.from (parent.getContext ()).inflate (R.layout.listitem_buynow, parent, false);
                return new GenericViewHolder (v);
            }
            return null;
        }

        private CartModel getItem (int position) {
            return idlistData.get (position);
        }


        @Override
        public void onBindViewHolder (RecyclerView.ViewHolder holder, int position) {
            if(holder instanceof HeaderViewHolder) {
                HeaderViewHolder headerHolder = (HeaderViewHolder) holder;
                headerHolder.txtTitleHeader.setText ("Header");
                headerHolder.txtTitleHeader.setOnClickListener (new View.OnClickListener () {
                    @Override
                    public void onClick (View view) {
                       // Toast.makeText (context, "Clicked Header", Toast.LENGTH_SHORT).show ();
                    }
                });
            } else if(holder instanceof FooterViewHolder) {
                FooterViewHolder footerHolder = (FooterViewHolder) holder;
                footerHolder.txtTitleFooter.setText ("Footer");
                footerHolder.FooterCheckout.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                       // Toast.makeText(context, "Clicked Footer", Toast.LENGTH_SHORT).show();
                        if(userd > 0)
                        {
                            System.out.println("Positive");
                            Intent intent=new Intent(BuyNowActivity.this,DelieveringProduct.class);
                            startActivity(intent);
                        }
                        else
                        {
                            System.out.println("Negative");
                            String skipsid=String.valueOf(userd);
                            Intent intent=new Intent(BuyNowActivity.this,Login_Page.class);
                            intent.putExtra("proceedtocheckoutid",skipsid);
                            intent.putExtra("isCheckOut",true);
                            startActivity(intent);
                        }
                    }
                });


            } else if(holder instanceof GenericViewHolder) {
                final CartModel currentItem = getItem (position - 1);
                final GenericViewHolder genericViewHolder = (GenericViewHolder) holder;
                genericViewHolder.txtName.setText(currentItem.getCart_Product_Name());
                String pics = currentItem.getCart_Product_Img();
                aQuery.id(genericViewHolder.proimage).image(pics, true, true, 0, R.mipmap.ic_launcher);

                genericViewHolder.buynowprice.setText("$" + currentItem.getCart_Product_Price());
                genericViewHolder.buynowqtys.setText(currentItem.getCart_Product_Qty());
                genericViewHolder.discounttext.setText(currentItem.getCart_Product_packDiscount());
                subtotal.setText("$" + currentItem.getCart_Product_Price());



                genericViewHolder.edtcoupan.setText(currentItem.getCart_Product_coupancode());

                genericViewHolder.gocoupan.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        if(genericViewHolder.edtcoupan.getText().toString().trim().length() > 0)
                        {

                             couponcode=genericViewHolder.edtcoupan.getText().toString();
                            packid=currentItem.getCart_Product_packid();
                            System.out.println("Coupan Code on click"+couponcode);
                            goforcoupan();
                        }
                    }
                });
                genericViewHolder.removes.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        packid=currentItem.getCart_Product_packid();
                        System.out.println("PACK ID"+packid);
                        deletetocart();
                    }
                });

        }
        @Override
        public int getItemViewType (int position) {
            if (isPositionHeader (position)) {
                return TYPE_HEADER;
            } else if(isPositionFooter (position)) {
                return TYPE_FOOTER;
            }
            return TYPE_ITEM;
        }

        private boolean isPositionHeader (int position) {
            return position == 0;
        }

        private boolean isPositionFooter (int position) {
            return position == idlistData.size () + 1;
        }

        @Override
        public int getItemCount () {
            return idlistData.size () + 2;
        }

        class FooterViewHolder extends RecyclerView.ViewHolder {
            Button FooterCheckout;
            TextView txtTitleFooter;
            public FooterViewHolder (View itemView) {
                super (itemView);
                this.txtTitleFooter = (TextView) itemView.findViewById (R.id.txtFooter);
                this.FooterCheckout = (Button) itemView.findViewById (R.id.footercheckout);
            }
        }

        class HeaderViewHolder extends RecyclerView.ViewHolder {
            TextView txtTitleHeader;
            public HeaderViewHolder (View itemView) {
                super (itemView);
                this.txtTitleHeader = (TextView) itemView.findViewById (R.id.txtHeader);
            }
        }

        class GenericViewHolder extends RecyclerView.ViewHolder {
             TextView discounttext;
            LinearLayout lindiscount;
            EditText edtcoupan;
            TextView txtName,buynowprice,buynowqtys,buynowfreq,gocoupan,removes,firsttxt,thirdtxt;
            public ImageView proimage;
            public RelativeLayout linfreq,linqty;
            public GenericViewHolder (View itemView) {
                super (itemView);
                this.txtName = (TextView) itemView.findViewById (R.id.listitem_buynow_title);
                this.proimage = (ImageView)itemView.findViewById(R.id.listitem_buynow_image);
                this.buynowprice = (TextView)itemView.findViewById(R.id.listitem_buynow_price);
                this.buynowqtys = (TextView)itemView.findViewById(R.id.listitem_buynow_qtys);
                this.buynowfreq = (TextView)itemView.findViewById(R.id.listitem_buynow_freq);
                this.gocoupan = (TextView)itemView.findViewById(R.id.listitem_buynow_gocoupan);
                this.edtcoupan = (EditText)itemView.findViewById(R.id.listitem_buynow_coupan);
                this.removes = (TextView)itemView.findViewById(R.id.listitem_buynow_remove);
                this.linfreq = (RelativeLayout)itemView.findViewById(R.id.linfreq);
                this.linqty = (RelativeLayout)itemView.findViewById(R.id.linqty);
                this.lindiscount = (LinearLayout)itemView.findViewById(R.id.coupancodeavailable);
                this.discounttext = (TextView)itemView.findViewById(R.id.listitem_buynow_discountstring);
                this.firsttxt = (TextView)itemView.findViewById(R.id.firsttext);
                this.thirdtxt = (TextView)itemView.findViewById(R.id.thirdtext);
            }
        }
    }

删除购物车

JsonArrayRequest request = new JsonArrayRequest(Request.Method.POST, addtocarturl, new JSONObject(params),
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        System.out.println("response -->> " + response.toString());
                        cartlist=new ArrayList<CartModel>();

                        try {

                            for (int i = 0; i < response.length(); i++) {

                                JSONObject person = (JSONObject) response
                                        .get(i);

                                System.out.println("person"+person);

                                String responsecode = person.getString("subTotal");
                                System.out.println("subtot"+responsecode);

                                System.out.println("person"+person);


                                if(person.getString("responseCode").equals("1"))
                                {

                                    JSONArray itemslist=person.optJSONArray("itemList");

                                    if(itemslist==null)
                                    {

                                        Toast.makeText(BuyNowActivity.this, "Your Shopping Cart is Empty", Toast.LENGTH_SHORT).show();

                                    }
                                    else {

                                        for (int j = 0; j < itemslist.length(); j++) {

                                            JSONObject cartitems = itemslist.getJSONObject(j);
                                            CartModel cvm = new CartModel();
                                            cvm.setCart_Product_Name(cartitems.getString("prodNarration"));
                                            cvm.setCart_Product_Price(cartitems.getString("finalPrice"));
                                            cvm.setCart_Product_Id(cartitems.getString("productId"));
                                            cvm.setCart_Product_Img(cartitems.getString("packLink"));
                                            cvm.setCart_Product_Qty(cartitems.getString("qty"));
                                            cvm.setCart_Product_packDiscount(cartitems.getString("packDIscDesc"));

                                            cartlist.add(cvm);
                                        }

                                        Toast.makeText(BuyNowActivity.this, "Product Removed Successfully", Toast.LENGTH_SHORT).show();
                                    }
                                }
                                else {
                                    System.out.println("something wrong");
                                }

                                rcAdapter = new HeaderFooterAdapter(BuyNowActivity.this,cartlist);
                                rView.setAdapter(rcAdapter);

                            }
詹基·加迪亚(Janki gadhiya)

这只是一个猜测,但是在删除一项后重新初始化列表时没有解析您的内容packId

if(person.getString("responseCode").equals("1"))
{

    JSONArray itemslist=person.optJSONArray("itemList");

    if(itemslist==null)
    {

        Toast.makeText(BuyNowActivity.this, "Your Shopping Cart is Empty", Toast.LENGTH_SHORT).show();

    }
    else {

        for (int j = 0; j < itemslist.length(); j++) {

            JSONObject cartitems = itemslist.getJSONObject(j);
            CartModel cvm = new CartModel();
            cvm.setCart_Product_Name(cartitems.getString("prodNarration"));
            cvm.setCart_Product_Price(cartitems.getString("finalPrice"));
            cvm.setCart_Product_Id(cartitems.getString("productId"));
            cvm.setCart_Product_Img(cartitems.getString("packLink"));
            cvm.setCart_Product_Qty(cartitems.getString("qty"));
            cvm.setCart_Product_packDiscount(cartitems.getString("packDIscDesc"));

            // HERE add some code for parsing packId

            cartlist.add(cvm);
        }

        Toast.makeText(BuyNowActivity.this, "Product Removed Successfully", Toast.LENGTH_SHORT).show();
    }
}

尝试在我添加评论的地方添加解析代码。

希望这会帮助你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带页脚的Recyclerview无法删除最后一个项目

来自分类Dev

从recyclerview android删除最后一个项目后的吐司

来自分类Dev

应用程序崩溃于RecyclerView中删除的最后一个项目

来自分类Dev

RecyclerView:notifyItemRemoved()上最后一个项目的动画

来自分类Dev

CSS Flex页脚包含3个项目,开始处有2个项目,最后一个项目完美居中

来自分类Dev

删除最后一个项目元素JQuery

来自分类Dev

Kotlin RecyclerView删除项目。这是一个错误吗?

来自分类Dev

CSS 不是最后一个孩子 - 无法删除最后一个分组的边框

来自分类Dev

AngularFire2 - 通过 Observable 删除一个项目 - 最后一个项目不会从 UI 中删除

来自分类Dev

如何固定最后一个页脚(ListView)

来自分类Dev

页脚元素隐藏了最后一个listview项

来自分类Dev

使用ListView,在Adapter中删除总是删除最后一个项目

来自分类Dev

从自定义适配器调用删除总是删除最后一个项目

来自分类Dev

laravel如何仅恢复通过软删除删除的最后一个项目

来自分类Dev

从数组中删除特定对象会继续删除最后一个项目

来自分类Dev

如何在水平RecyclerView中正确对齐第一个和最后一个项目的中心

来自分类Dev

GridView,最后一个项目居中

来自分类Dev

聪明的目标最后一个项目

来自分类Dev

单击每个项目内的“x”按钮删除任何网格项目,我的方法只删除最后一个

来自分类Dev

如何从数组中删除第一个或最后一个项目并创建新数组?

来自分类Dev

PowerShell删除最后一个错误

来自分类Dev

继续删除最后一个div

来自分类Dev

删除列表的最后一个元素

来自分类Dev

删除最后一个拉github

来自分类Dev

JS删除最后一个孩子?

来自分类Dev

继续删除最后一个div

来自分类Dev

PowerShell删除最后一个错误

来自分类Dev

删除每行的最后一个逗号

来自分类Dev

删除最后一个空行

Related 相关文章

  1. 1

    带页脚的Recyclerview无法删除最后一个项目

  2. 2

    从recyclerview android删除最后一个项目后的吐司

  3. 3

    应用程序崩溃于RecyclerView中删除的最后一个项目

  4. 4

    RecyclerView:notifyItemRemoved()上最后一个项目的动画

  5. 5

    CSS Flex页脚包含3个项目,开始处有2个项目,最后一个项目完美居中

  6. 6

    删除最后一个项目元素JQuery

  7. 7

    Kotlin RecyclerView删除项目。这是一个错误吗?

  8. 8

    CSS 不是最后一个孩子 - 无法删除最后一个分组的边框

  9. 9

    AngularFire2 - 通过 Observable 删除一个项目 - 最后一个项目不会从 UI 中删除

  10. 10

    如何固定最后一个页脚(ListView)

  11. 11

    页脚元素隐藏了最后一个listview项

  12. 12

    使用ListView,在Adapter中删除总是删除最后一个项目

  13. 13

    从自定义适配器调用删除总是删除最后一个项目

  14. 14

    laravel如何仅恢复通过软删除删除的最后一个项目

  15. 15

    从数组中删除特定对象会继续删除最后一个项目

  16. 16

    如何在水平RecyclerView中正确对齐第一个和最后一个项目的中心

  17. 17

    GridView,最后一个项目居中

  18. 18

    聪明的目标最后一个项目

  19. 19

    单击每个项目内的“x”按钮删除任何网格项目,我的方法只删除最后一个

  20. 20

    如何从数组中删除第一个或最后一个项目并创建新数组?

  21. 21

    PowerShell删除最后一个错误

  22. 22

    继续删除最后一个div

  23. 23

    删除列表的最后一个元素

  24. 24

    删除最后一个拉github

  25. 25

    JS删除最后一个孩子?

  26. 26

    继续删除最后一个div

  27. 27

    PowerShell删除最后一个错误

  28. 28

    删除每行的最后一个逗号

  29. 29

    删除最后一个空行

热门标签

归档