java - I'm trying to update the textview in the recyclerview after clicking add and delete button. notifyDataSetChanged(); method is not working -


my onclick delete , add button in adapter class under myviewholder class. managed delete , add data server. not updating recyclerview. below adapter class. used volley library send request, delete request pain in a**s , changed post method. thats not problem im facing now. want update reserved amount displayed on recyclerview..

public class cartadapter extends recyclerview.adapter<cartadapter.myviewholder>{        private list<cart> cartlist;      private context mcontext;      private cart cart;      private int inventoryid;      private string username;      private cartadapter cartadapter;      private string url = "http://192.168.4.31/api/canteen/cart";      private string delete_url = "http://192.168.4.31/api/canteen/mobile_delete";      string qtyreserved;        public static boolean add= true;      public static int sum = 0;        public class myviewholder extends recyclerview.viewholder implements view.onclicklistener {          public imageview thumbnail, plus, minus;          public textview menuname, quantity_reserved, price ;              public myviewholder(view view) {              super(view);              thumbnail = view.findviewbyid(r.id.itemimage);              menuname = view.findviewbyid(r.id.itemname);              quantity_reserved = view.findviewbyid(r.id.qty);              price = view.findviewbyid(r.id.price);              plus = view.findviewbyid(r.id.plusimage);              minus = view.findviewbyid(r.id.minusimage);                view.setonclicklistener(this);              plus.setonclicklistener(this);              minus.setonclicklistener(this);          }            @override          public void onclick(view view) {                cart = cartlist.get(getadapterposition());              inventoryid = cart.getcart_inv_id();              username = cart.getscreen_name();                  if (view.getid() == plus.getid()) {                  puttocart(getadapterposition());                 // cartadapter.notifyitemchanged(getadapterposition());              }              if (view.getid() == minus.getid()) {                  deletefromcart(getadapterposition());                //  notifyitemremoved(getadapterposition());                  notifyitemrangechanged(getadapterposition(),cartlist.size());                }            }      }          public cartadapter(context context, list<cart> images) {          mcontext = context;          this.cartlist = images;        this.cartadapter = this;      }        @override      public myviewholder oncreateviewholder(final viewgroup parent, final int viewtype) {          final view itemview = layoutinflater.from(parent.getcontext())                  .inflate(r.layout.cart_thumbnail, parent, false);            return new myviewholder(itemview);      }        @override      public void onbindviewholder(myviewholder holder, int position) {          cart = cartlist.get(position);          string url_image = "http://192.168.4.31";          string name = cart.getimg_url();          string finalurl = "";          finalurl = url_image + name;            glide.with(mcontext).load(finalurl)                  .thumbnail(0.3f)                  .fitcenter()                  .placeholder(r.drawable.lunch)                  .diskcachestrategy(diskcachestrategy.all)                  .into(holder.thumbnail);          holder.menuname.settext(cartlist.get(position).getcart_inv_name());          holder.quantity_reserved.settext(integer.tostring(cartlist.get(position).getquantity_reserved()));          holder.price.settext(double.tostring(cartlist.get(position).gettotal())+"0");        //  refreshblockoverlay(position);    //        if(add){  //            sum = sum + cart.getquantity_reserved();  //            add= false; }        }        @override      public int getitemcount() {          return cartlist.size();      }        public void puttocart(final int position) {            jsonobject param = new jsonobject();          try {              param.put("screen_name", username);              param.put("inventory_id", inventoryid);              param.put("pending", "null");          } catch (jsonexception e) {              e.printstacktrace();          }            jsonobjectrequest request_json = new jsonobjectrequest(request.method.put, url, param,                  new response.listener<jsonobject>() {                      @override                      public void onresponse(jsonobject response) {                          try {                              qtyreserved = response.getstring("amount_reserved");                              cart image = new cart();                              image.setquantity_reserved(integer.valueof(qtyreserved));                              cartlist.add(image);                            //  notifyiteminserted(position);                             notifyitemrangechanged(position , getitemcount());                                } catch (jsonexception e) {                              e.printstacktrace();                          }                      }                  }, new response.errorlistener() {              @override              public void onerrorresponse(volleyerror error) {                  volleylog.e("error: ", error.getmessage());                    toast.maketext(mcontext, "oops!! not available ", toast.length_short).show();              }          });          mysingleton.mysingletoninstance(mcontext.getapplicationcontext()).addtorequestque(request_json);      }        public void deletefromcart(final int position2) {          jsonobject param = new jsonobject();          try {              param.put("screen_name", username);              param.put("inventory_id", inventoryid);            } catch (jsonexception e) {              e.printstacktrace();          }          jsonobjectrequest request_json = new jsonobjectrequest(request.method.post, delete_url, param,                  new response.listener<jsonobject>() {                      @override                      public void onresponse(jsonobject response) {                         //  notifyitemremoved(position2);                          //notifyitemrangechanged();                        // notifyitemremoved(position2);                         // notifyitemchanged(position2);                          //notifyitemrangechanged(position2, 1, null);                       //  cartadapter.notifydatasetchanged();                          notifydatasetchanged();                          toast.maketext(mcontext, "deleted", toast.length_short).show();                      }                  }, new response.errorlistener() {              @override              public void onerrorresponse(volleyerror error) {                  volleylog.e("error: ", error.getlocalizedmessage());                  toast.maketext(mcontext, "not ok " + error.getmessage(), toast.length_short).show();              }            });            mysingleton.mysingletoninstance(mcontext.getapplicationcontext()).addtorequestque(request_json);      }      }

you deleting data server still keeping in app memory in list. on succesfull server response should delete list , call notifydatasetchanged();


Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -