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
Post a Comment