android - Viewpager with Fragment issue -


i used example shown in link

its run fine in portrait position when turn phone landscape position force close ,

any overcome problem appreciated , .

viewpagerexample

public class viewpagerexample extends fragmentactivity { private myadapter madapter; private viewpager mpager;  /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.main);     madapter = new myadapter(getsupportfragmentmanager());      mpager = (viewpager) findviewbyid(r.id.pager);     mpager.setadapter(madapter); }  public static class myadapter extends fragmentpageradapter {     public myadapter(fragmentmanager fm) {         super(fm);     }      @override     public int getcount() {         return 3;     }      @override     public fragment getitem(int position) {         switch (position) {         case 0:             return new detailfragment();         case 1:             return new imagefragment(r.drawable.ic_launcher);         case 2:             return new imagefragment(r.drawable.five);          default:             return null;         }     } } } 

imagefragment

public class imagefragment extends fragment { private final int imageresourceid;  public imagefragment(int imageresourceid) {     this.imageresourceid = imageresourceid; }  @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     log.e("test", "hello"); }  @override public void onactivitycreated(bundle savedinstancestate) {     super.onactivitycreated(savedinstancestate);  }  @override public view oncreateview(layoutinflater inflater, viewgroup container,         bundle savedinstancestate) {     view view = inflater.inflate(r.layout.image_layout, container, false);     imageview imageview = (imageview) view.findviewbyid(r.id.imageview1);     imageview.setimageresource(imageresourceid);     return view; } } 

detailfragment

public class detailfragment extends fragment { @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     log.e("test", "hello"); }  @override public void onactivitycreated(bundle savedinstancestate) {     super.onactivitycreated(savedinstancestate);  }  @override public view oncreateview(layoutinflater inflater, viewgroup container,         bundle savedinstancestate) {     view view = inflater.inflate(r.layout.details, container, false);     textview textview = (textview) view.findviewbyid(r.id.detailstext);     textview.settext("testing");     return view; } } 

logcat

java.lang.runtimeexception: unable start activity    componentinfo{com.test.demo/com.test.demo.viewpagerexample}: android.support.v4.app.fragment$instantiationexception: unable instantiate    fragment com.test.demo.imagefragment: make sure class name exists, public, , has empty constructor public @ android.app.activitythread.performlaunchactivity(activitythread.java:1651) @ android.app.activitythread.handlelaunchactivity(activitythread.java:1667) @ android.app.activitythread.handlerelaunchactivity(activitythread.java:2836) @ android.app.activitythread.access$1600(activitythread.java:117) @ android.app.activitythread$h.handlemessage(activitythread.java:939) @ android.os.handler.dispatchmessage(handler.java:99) @ android.os.looper.loop(looper.java:130) @ android.app.activitythread.main(activitythread.java:3687) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:507) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:867) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:625) @ dalvik.system.nativestart.main(native method) caused by: android.support.v4.app.fragment$instantiationexception: unable   instantiate fragment com.test.demo.imagefragment:  make sure class name exists, public, , has empty constructor public @ android.support.v4.app.fragment.instantiate(fragment.java:413) @ android.support.v4.app.fragmentstate.instantiate(fragment.java:97) @            android.support.v4.app.fragmentmanagerimpl.restoreallstate(fragmentmanager.java:1783) @ android.support.v4.app.fragmentactivity.oncreate(fragmentactivity.java:213) @ com.test.demo.viewpagerexample.oncreate(viewpagerexample.java:17) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1047) @ android.app.activitythread.performlaunchactivity(activitythread.java:1615) ... 12 more caused by: java.lang.instantiationexception: com.test.demo.imagefragment @ java.lang.class.newinstanceimpl(native method) @ java.lang.class.newinstance(class.java:1409) @ android.support.v4.app.fragment.instantiate(fragment.java:402) ... 18 more 

fragments have have empty constructor. want pass fragment done

@override public fragment getitem(int position) {     fragment fragment = null;     bundle args = new bundle();     switch (position) {     case 0:         fragment = new detailfragment();         break;     case 1:         args.putint("image",r.drawable.ic_launcher);         fragment = new imagefragment();         fragment.setarguments(args);         break;     case 2:         args.putint("image",r.drawable.five);                  fragment = new imagefragment();         fragment.setarguments(args);         break;     }     return fragment; } 

and in fragment:

@override public void onactivitycreated(bundle savedinstancestate) {      super.onactivitycreated(savedinstancestate);      int imageid = getarguments().getint("image"); } 

Comments

Popular posts from this blog

design - Custom Styling Qt Quick Controls -

Unable to remove the www from url on https using .htaccess -