i have viewpager
, want use same fragment
type it's views
have problem. first view
updated. if swipe left/right empty fragment
, if swipe can see fragment
should have instantiated in first swipe instantiated there , i'm kind of confused.. code : activity :
public class hymnswipe extends actionbaractivity { private static final int num_pages = 900; private viewpager mpager; private pageradapter mpageradapter; prefmanager prefs; int startnumber; @override protected void oncreate(bundle savedinstancestate) { barcolorizer bar = new barcolorizer(this); prefs = new prefmanager(this); if (prefs.getnightmode()) { settheme(r.style.theme_appcompat); bar.setcolor(r.color.grey_900); } else { bar.settheme(); } super.oncreate(savedinstancestate); setcontentview(r.layout.fragment_hymn_slider); if (android.os.build.version.sdk_int >= 11) { bar.setactivity(this); } startnumber = getintent().getextras().getint("number"); // instantiate viewpager , pageradapter. mpager = (viewpager) findviewbyid(r.id.vphymnpager); mpageradapter = new screenslidepageradapter(getsupportfragmentmanager()); mpager.setadapter(mpageradapter); mpager.setcurrentitem(startnumber, true); getsupportactionbar().setdisplayhomeasupenabled(true); } private class screenslidepageradapter extends fragmentpageradapter { public screenslidepageradapter(fragmentmanager fm) { super(fm); } @override public int getcount() { return num_pages; } @override public fragment getitem(int position) { return fragmentshowhymn.newinstance(position); } } }
fragment :
public class fragmentshowhymn extends fragment implements view.ontouchlistener, view.onkeylistener { private int mhymnnumber; textview tvtitle, tvhymn, tvcategory, tvgama; imageview ivsheet, ivmp3; seekbar hymntextsize; linearlayout llimagebuttons; imagebutton ibplaypause, ibstop; bitmap bmpplay, bmppause, bmpstop, heart; boolean ibplaypauseisonplay = true; soundprocessor sound; public static progressdialog progress; menu menu; boolean isfavorited = false; string hymnnumber; databasehelper database; boolean textready = false; imageprocessor ip; file musicsheet; int mediabuttons, sheetandmediabuttons; intent sharingintent = null; public static boolean ismusicplaying = false; prefmanager prefs; // pinchzoom final static float step = 200; float mratio = 1.0f; int mbasedist; float mbaseratio; float maxfontsize = 50; gesturedetector gesturedetector; scrollview swscroll; powermanager.wakelock wakelock; public fragmentshowhymn() { } public fragmentshowhymn(int hymnnumber) { mhymnnumber = hymnnumber; } public static fragmentshowhymn newinstance(int position) { fragmentshowhymn fragmentshowhymn = new fragmentshowhymn(); bundle args = new bundle(); args.putint("hymnnumber", position); fragmentshowhymn.setarguments(args); return fragmentshowhymn; } @nullable @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view v = inflater.inflate(r.layout.activity_show_hymn, container, false); return v; } @override public void onactivitycreated(@nullable bundle savedinstancestate) { super.onactivitycreated(savedinstancestate); displaymetrics dm = new displaymetrics(); getactivity().getwindowmanager().getdefaultdisplay().getmetrics(dm); int width = dm.widthpixels; int height = dm.heightpixels; mediabuttons = width / 6; sheetandmediabuttons = width / 6; prefs = new prefmanager(getactivity()); mhymnnumber = getarguments().getint("hymnnumber"); init(); showtext(); initshare(); } //other methods initializing views }
how can fix this?
what if try use onviewcreated()
instead of onactivitycreated()
? unusual thing can see in code.
Comments
Post a Comment