android - RecyclerView and database, unable to delete items -


ok, have been going around in circles past couple of days on problem, unable find working solution, perhaps don't know how phrase question right. here goes.

i working on project using recyclerview adapter, load , display simple elements sqlite database, containing string quote , string reference image ressource. part works fine, can't seem able delete items.

i have gone through code making sure connection database opened when needed , closed afterwards, , there should no open issues here.

i can delete item inside recyclerview adapter when clicking on element, if exit , enter again, deleted items have been loaded again. places problem database think, or perhaps sort of dueling banjos problems functions recreates deleted item. have followed code numerous times now, , life in me, can't seem solve issue.

at moment in delete click event running delete call database , recyclerview adapter, problem persists.

i hoping input pinpoint issue. not sure code include in question, have included recyclerview adapter , database adapter. , know how close impossible answer these sort of questions without being able see code, still.

*please excuse mess. have been trying out lot of things.

// recyclerview adapter

    public class recyclerviewadapter extends recyclerview.adapter<recyclerviewadapter.dataobjectholder> {     private arraylist<instance> instancedataset;     private theclicklistener clicklistener;     public context context;      private dbadapter db;     private button deletebutton;     private int theposition;       public recyclerviewadapter(context context)     {         this.context = context;     }   // viewholder inner class       class dataobjectholder extends recyclerview.viewholder implements view.onclicklistener     {         cardview cv;         textview comment;         imageview imageviewlocaladapter;           public dataobjectholder(final view itemview)         {             super(itemview);             cv = (cardview) itemview.findviewbyid(r.id.cardview_layout);             comment = (textview) itemview.findviewbyid(r.id.cardview_textview);             imageviewlocaladapter = (imageview) itemview.findviewbyid(r.id.cardview_imageview);              deletebutton = (button) itemview.findviewbyid(r.id.delete_button);             //itemview.setonclicklistener(this);         }          // here displays position of item clicked         @override         public void onclick(view v)         {             //intent intent = new intent(context, singleinstancefragment.class);             // log.d(" clicking ", "onclick " + getposition());                //clicklistener.onthegreatitemclick(getposition(), v);         }     }        public void setonitemclicklistener(theclicklistener clicklistener)     {         this.clicklistener = clicklistener;     }      public recyclerviewadapter(arraylist<instance> instancedataset, context context)     {         this.instancedataset = instancedataset;         this.context = context;     }  // viewholder       @override     public dataobjectholder oncreateviewholder(viewgroup viewgroup, int viewtype)     {         view view = layoutinflater.from(viewgroup.getcontext()).inflate(r.layout.cardview, viewgroup, false);         dataobjectholder dataobjectholder = new dataobjectholder(view);         return dataobjectholder;     }      @override     public void onbindviewholder(final dataobjectholder holder, final int position)     {         final instance inst = instancedataset.get(position);         opendb();         theposition = position;          holder.comment.settext(inst.getcomment());          string middle = "/sdcard/unapp/";         uri uri = uri.parse("file://" + middle + inst.getimage());          picasso.with(holder.imageviewlocaladapter.getcontext())                 .load(uri)                 .fit().centercrop()                 .into(holder.imageviewlocaladapter);          final recyclerview.viewholder reholder = holder;          holder.imageviewlocaladapter.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                   deleteitem(position);                 log.d("position in ", " recyclerview adapter " + position);                 onbindviewholder(holder, position); //                intent intent = new intent(context, singleinstanceactivity.class); //                intent.putextra("position", position); // //                context.startactivity(intent);             }          });     }      public void additem(instance dataobj, int index)     {         instancedataset.add(dataobj);         notifyiteminserted(index);     }      public void deleteitem(int index)     {         log.d("count", "deleteitem " +getitemcount());         instancedataset.remove(index);         db.deleterow(index);          db.close();         notifyitemremoved(index);          //new recyclerviewadapter(instancedataset, context);          log.d("count", "deleteitem deux  " +getitemcount());     }      private void opendb()     {         db = new dbadapter(this.context);         db.open();     }       @override     public int getitemcount()     {         return instancedataset.size();     }        public instance getitem(int position)     {         return instancedataset.get(position);     }  //  clicklistener interface      public interface theclicklistener     {         void onthegreatitemclick(int position, view v);      } } 

// database adapter

    public class recyclerviewadapter extends recyclerview.adapter<recyclerviewadapter.dataobjectholder> {     private arraylist<instance> instancedataset;     private theclicklistener clicklistener;     public context context;      private dbadapter db;     private button deletebutton;     private int theposition;       public recyclerviewadapter(context context)     {         this.context = context;     }   // viewholder inner class       class dataobjectholder extends recyclerview.viewholder implements view.onclicklistener     {         cardview cv;         textview comment;         imageview imageviewlocaladapter;           public dataobjectholder(final view itemview)         {             super(itemview);             cv = (cardview) itemview.findviewbyid(r.id.cardview_layout);             comment = (textview) itemview.findviewbyid(r.id.cardview_textview);             imageviewlocaladapter = (imageview) itemview.findviewbyid(r.id.cardview_imageview);              deletebutton = (button) itemview.findviewbyid(r.id.delete_button);             //itemview.setonclicklistener(this);         }          // here displays position of item clicked         @override         public void onclick(view v)         {             //intent intent = new intent(context, singleinstancefragment.class);             // log.d(" clicking ", "onclick " + getposition());                //clicklistener.onthegreatitemclick(getposition(), v);         }     }        public void setonitemclicklistener(theclicklistener clicklistener)     {         this.clicklistener = clicklistener;     }      public recyclerviewadapter(arraylist<instance> instancedataset, context context)     {         this.instancedataset = instancedataset;         this.context = context;     }  // viewholder       @override     public dataobjectholder oncreateviewholder(viewgroup viewgroup, int viewtype)     {         view view = layoutinflater.from(viewgroup.getcontext()).inflate(r.layout.cardview, viewgroup, false);         dataobjectholder dataobjectholder = new dataobjectholder(view);         return dataobjectholder;     }      @override     public void onbindviewholder(final dataobjectholder holder, final int position)     {         final instance inst = instancedataset.get(position);         opendb();         theposition = position;          holder.comment.settext(inst.getcomment());          string middle = "/sdcard/unapp/";         uri uri = uri.parse("file://" + middle + inst.getimage());          picasso.with(holder.imageviewlocaladapter.getcontext())                 .load(uri)                 .fit().centercrop()                 .into(holder.imageviewlocaladapter);          final recyclerview.viewholder reholder = holder;          holder.imageviewlocaladapter.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                   deleteitem(position);                 log.d("position in ", " recyclerview adapter " + position);                 onbindviewholder(holder, position); //                intent intent = new intent(context, singleinstanceactivity.class); //                intent.putextra("position", position); // //                context.startactivity(intent);             }          });     }      public void additem(instance dataobj, int index)     {         instancedataset.add(dataobj);         notifyiteminserted(index);     }      public void deleteitem(int index)     {         log.d("count", "deleteitem " +getitemcount());         instancedataset.remove(index);         db.deleterow(index);          db.close();         notifyitemremoved(index);          //new recyclerviewadapter(instancedataset, context);          log.d("count", "deleteitem deux  " +getitemcount());     }      private void opendb()     {         db = new dbadapter(this.context);         db.open();     }       @override     public int getitemcount()     {         return instancedataset.size();     }        public instance getitem(int position)     {         return instancedataset.get(position);     }  //  clicklistener interface      public interface theclicklistener     {         void onthegreatitemclick(int position, view v);      } } 


Comments

Popular posts from this blog

searchKeyword not working in AngularJS filter -

sequelize.js - Sequelize: sort by enum cases -

user interface - how to replace an ongoing process of image capture from another process call over the same ImageLabel in python's GUI TKinter -