Calling notifyDataSetChanged() on my adapter that is within a ListFragment causes a NullPointerException? -


introduction:

i have following set up:

  1. a mainactivity methods onnewintent , processnewintent, mainactivity implements fragmentactivity; , has tabbed fragment implements fragmentlist

  2. a listaddactivity activity creates new parcelable listcontrolobject

  3. the listaddactivity activity sends intent carrying parcel reconstructs listcontrolobject inside of mainactivity's onnewintent , processnewintent class.

  4. however; can take in intent onnewintent method , constructs new listcontrolobject fine; when call adapter.notifydatasetchanged method on fragmentlist class.

logcat error:

03-24 04:18:44.149: e/trace(16964): error opening trace file: no such file or directory (2) 03-24 04:18:49.543: e/androidruntime(16964): fatal exception: main 03-24 04:18:49.543: e/androidruntime(16964): java.lang.runtimeexception: unable start activity componentinfo{com.nanospark.upcdemo/com.nanospark.upcdemo.mainactivity}: java.lang.nullpointerexception 03-24 04:18:49.543: e/androidruntime(16964):    @ android.app.activitythread.performlaunchactivity(activitythread.java:2184) 03-24 04:18:49.543: e/androidruntime(16964):    @ android.app.activitythread.handlelaunchactivity(activitythread.java:2211) 03-24 04:18:49.543: e/androidruntime(16964):    @ android.app.activitythread.access$600(activitythread.java:149) 03-24 04:18:49.543: e/androidruntime(16964):    @ android.app.activitythread$h.handlemessage(activitythread.java:1300) 03-24 04:18:49.543: e/androidruntime(16964):    @ android.os.handler.dispatchmessage(handler.java:99) 03-24 04:18:49.543: e/androidruntime(16964):    @ android.os.looper.loop(looper.java:153) 03-24 04:18:49.543: e/androidruntime(16964):    @ android.app.activitythread.main(activitythread.java:4987) 03-24 04:18:49.543: e/androidruntime(16964):    @ java.lang.reflect.method.invokenative(native method) 03-24 04:18:49.543: e/androidruntime(16964):    @ java.lang.reflect.method.invoke(method.java:511) 03-24 04:18:49.543: e/androidruntime(16964):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:821) 03-24 04:18:49.543: e/androidruntime(16964):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:584) 03-24 04:18:49.543: e/androidruntime(16964):    @ dalvik.system.nativestart.main(native method) 03-24 04:18:49.543: e/androidruntime(16964): caused by: java.lang.nullpointerexception 03-24 04:18:49.543: e/androidruntime(16964):    @ com.nanospark.upcdemo.mainactivity.processnewintent(mainactivity.java:102) 03-24 04:18:49.543: e/androidruntime(16964):    @ com.nanospark.upcdemo.mainactivity.oncreate(mainactivity.java:81) 03-24 04:18:49.543: e/androidruntime(16964):    @ android.app.activity.performcreate(activity.java:5020) 03-24 04:18:49.543: e/androidruntime(16964):    @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1080) 03-24 04:18:49.543: e/androidruntime(16964):    @ android.app.activitythread.performlaunchactivity(activitythread.java:2148) 03-24 04:18:49.543: e/androidruntime(16964):    ... 11 more 

the onnewintent method:

    @override protected void onnewintent(intent intent) {     super.onnewintent(intent);     processnewintent(intent); } 

the processnewintent method:

private void processnewintent(intent intent) {     cyclefragment = new cycleviewfragment();     log.d("test", "method called test");     if (intent.hasextra("custom_object")) {         if (intent.getparcelableextra("custom_object").equals(null)) {             log.d("testing null", "object null");         } else {             log.d("testing null", "object not null");               cyclefragment.geta1().add((listcontrolobject)              intent.getparcelableextra("custom_object"));              cyclefragment.adapter.notifydatasetchanged();          }     } 

the specific line throws nullpointerexception:

 cyclefragment.adapter.notifydatasetchanged(); // - line 102 

the listfragment class:

public class cycleviewfragment extends listfragment {     public view cycleviewfragment;     public arraylist<listcontrolobject> a1 = new arraylist<listcontrolobject>();     public arrayadapter<listcontrolobject> adapter;     public button addbutton;     public context context;      public view oncreateview(layoutinflater viewinflation, viewgroup container,             bundle savedinstantstate) {          cycleviewfragment = viewinflation.inflate(                 r.layout.cycleviewfragment_page, container, false);         context = getactivity().getapplicationcontext();         a1.add(new listcontrolobject(1, "name", 1, 1, 1, 1, 1, 1, 1, 1, 1));          adapter = new arrayadapter<listcontrolobject>(getactivity()                 .getapplicationcontext(), android.r.layout.simple_list_item_1,                 a1);          this.setlistadapter(adapter);          addbutton = (button) cycleviewfragment.findviewbyid(r.id.addbutton);          addbutton.setonclicklistener(new onclicklistener() {              @override             public void onclick(view v) {                 intent myintent = new intent(getactivity(),                         listaddactivity.class);                 // myintent.putextra("array", a1); // optional parameters                 getactivity().startactivity(myintent);             }          });         return cycleviewfragment;     }      public arrayadapter<listcontrolobject> getadapter() {         return adapter;     }      public void setadapter(arrayadapter<listcontrolobject> adapter) {         this.adapter = adapter;     }      public arraylist<listcontrolobject> geta1() {         return a1;     }      public void seta1(arraylist<listcontrolobject> a1) {         this.a1 = a1;     } } 

try this:

if (cyclefragment != null && cyclefragment.adapter != null) {     cyclefragment.adapter.notifydatasetchanged(); } 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -