android - Use same Fragment class in ViewPager -


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