android - ViewPager delete a page -


how can permanently delete page view pager. want delete page when user presses button present on screen. struggling lot this. read documentation of pageradapter , found destroyitem didn't me though. able add images in viewpager deleting still giving me tough time. please help.

below code activity in images fetched , want delete image on user request.

public class imagedisplayactivity extends activity { private list<string> filepaths;  @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_display1);       // image paths pageradapter     filepaths = getintent().getextras().getstringarraylist("filepaths");     int currposition = getintent().getextras().getint("position");      viewpager viewpager = (viewpager) findviewbyid(r.id.view_pager);     viewpager.setcurrentitem(currposition);      imagepageradapter adapter = new imagepageradapter();     viewpager.setadapter(adapter); }  private class imagepageradapter extends pageradapter {     @override     public int getcount() {         return filepaths.size();     }      @override     public boolean isviewfromobject(view view, object object) {         return view == ((imageview) object);     }      @override     public object instantiateitem(viewgroup container, int position) {         context context = imagedisplayactivity.this;         imageview imageview = new imageview(context);          int padding = 16;         imageview.setpadding(padding, padding, padding, padding);         imageview.setscaletype(imageview.scaletype.center_inside);          // image         bitmapfactory.options bmoptions = new bitmapfactory.options();         bmoptions.injustdecodebounds = false;         bmoptions.insamplesize = 4;         bmoptions.inpurgeable = true;         bitmap bitmap = bitmapfactory.decodefile(filepaths.get(position), bmoptions);          // display image         imageview.setimagebitmap(bitmap);          ((viewpager) container).addview(imageview, 0);         return imageview;     }      @override     public void destroyitem(viewgroup container, int position, object imageview) {         ((viewpager) container).removeview((imageview) imageview);     } } 

}

as @kuffs saying, remove items filepaths, notify adapter underlying data has changed:

filepaths.remove(...); // remove whatever want adapter.notifydatasetchanged(); // tell adapter it's time update views 

Comments