ViewPager postion android studio -
i designed pager contains imageview , put images in assets folder , make arraylist contains image location in assets folder , image number , description each image , when swipe the pager finger should change image , put image number , description in 2 text view 1 image number , second text view description images swipe write no problem problem text views don't show right position displayed image show image number , description next image doesn't show yet problem did. here code
public class mainactivity extends appcompatactivity { custompageradapter mcustompageradapter; viewpager mviewpager; int clk=0; textview txtayaname; textview txtpage; linearlayout co1; linearlayout co2; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); txtayaname=(textview) findviewbyid(r.id.textview); txtpage=(textview) findviewbyid(r.id.textview2); co1=(linearlayout) findviewbyid(r.id.co1) ; co2=(linearlayout) findviewbyid(r.id.co2) ; arraylist<items> imagepaths = new arraylist<items>(); imagepaths.add(new items("p1.png", 1, "image_1")); imagepaths.add(new items("p2.png", 2, "image_2")); imagepaths.add(new items("p3.png", 3, "image_3")); imagepaths.add(new items("p4.png", 4, "image_4")); imagepaths.add(new items("p5.png", 5, "image_5")); imagepaths.add(new items("p6.png", 6, "image_6")); imagepaths.add(new items("p7.png", 7, "image_7")); imagepaths.add(new items("p8.png", 8, "image_8")); imagepaths.add(new items("p9.png", 9, "image_9")); imagepaths.add(new items("p10.png", 10, "image_10")); mcustompageradapter = new custompageradapter(this,imagepaths); mviewpager = (viewpager) findviewbyid(r.id.pager); mviewpager.setadapter(mcustompageradapter); mviewpager.setcurrentitem(0); } class custompageradapter extends pageradapter { context mcontext; layoutinflater mlayoutinflater; arraylist<items> imagepaths = new arraylist<items>(); public custompageradapter(context context,arraylist<items> imagepaths) { mcontext = context; this.imagepaths=imagepaths; mlayoutinflater = (layoutinflater) mcontext.getsystemservice(context.layout_inflater_service); } @override public int getcount() { return imagepaths.size(); } @override public boolean isviewfromobject(view view, object object) { return view == ((linearlayout) object); } @override public object instantiateitem(viewgroup container, final int position) { if(clk==0) { co1.setvisibility(view.gone); co2.setvisibility(view.gone); } else{ co1.setvisibility(view.visible); co2.setvisibility(view.visible); } view itemview = mlayoutinflater.inflate(r.layout.pager_item, container, false); final imageview imageview = (imageview) itemview.findviewbyid(r.id.imageview); imageview.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { if(clk==0){ clk=1; co1.setvisibility(view.visible); co2.setvisibility(view.visible); } else{ clk=0; co1.setvisibility(view.gone); co2.setvisibility(view.gone); } } }); try { // input stream inputstream ims = getassets().open(imagepaths.get(position).location); // load image drawable drawable d = drawable.createfromstream(ims, null); // set image imageview imageview.setimagedrawable(d); txtayaname.settext(imagepaths.get(position).ayaname); txtpage.settext(string.valueof(imagepaths.get(position).pagnum)); txtpage.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { toast.maketext(getapplication(),"page number:"+imagepaths.get(position).pagnum,toast.length_long).show(); } }); } catch(ioexception ex) {} container.addview(itemview); return itemview; } @override public void destroyitem(viewgroup container, int position, object object) { container.removeview((linearlayout) object); } } }
Comments
Post a Comment