android - ListActivity from SQlite to LIstFragment NullPointerException -


i following tutorial [http://vimaltuts.com/android-tutorials/android-load-image-from-sqlite-to-listview][1] creating list of contacts sqlite db, adding, editing , removing. works perfectly, want change listactivity listfragment. far have not been able it, null pointer exception (see below). wrong fragment cycle think. can please help??

original contacts activity

import com.vimaltuts.mycontacts.r;  import android.os.asynctask; import android.os.bundle; import android.app.listactivity; import android.content.intent; import android.database.cursor; import android.view.menu; import android.view.menuitem;  public class mycontactsactivity extends listactivity {      sqliteconnector sqlcon;     private customcontactsadapter custadapter;      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);              string[] = new string[] { contacts.name, contacts.phone,contacts.mail };         int[] = new int[] { r.id.name, r.id.phone, r.id.email };         custadapter = new customcontactsadapter(this,r.layout.contact_list_item, null, from, to);         this.setlistadapter(custadapter);            }      @override     protected void onresume() {         super.onresume();         new getcontacts().execute((object[]) null);     }      @suppresswarnings("deprecation")     @override     protected void onstop() {         cursor cursor = custadapter.getcursor();          if (cursor != null)             cursor.deactivate();          custadapter.changecursor(null);         super.onstop();      }      private class getcontacts extends asynctask<object, object, cursor> {         sqliteconnector dbconnector = new sqliteconnector(mycontactsactivity.this);          @override         protected cursor doinbackground(object... params) {             return dbconnector.getallcontacts();         }          @override         protected void onpostexecute(cursor result) {             custadapter.changecursor(result);          }     }      @override     public boolean oncreateoptionsmenu(menu menu) {         getmenuinflater().inflate(r.menu.activity_my_contacts, menu);         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         intent addcontact = new intent(mycontactsactivity.this,addeditcontacts.class);         startactivity(addcontact);         return super.onoptionsitemselected(item);     }  } 

custom contact adapter

import android.content.context; import android.content.intent; import android.database.cursor; import android.graphics.bitmapfactory; import android.support.v4.widget.simplecursoradapter; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.imagebutton; import android.widget.imageview; import android.widget.textview;  public class customcontactsadapter extends simplecursoradapter {      private int layout;     private imagebutton editbtn;     private imagebutton delbtn;     layoutinflater inflator;      public customcontactsadapter(context context, int layout, cursor c,string[] from, int[] to) {         super(context, layout, c, from, to,0);         this.layout = layout;         inflator= layoutinflater.from(context);     }      public view newview(context context, cursor cursor, viewgroup parent) {              view v = inflator.inflate(layout, parent, false);         return v;     }      @override     public void bindview(view v, final context context, cursor c) {         final int id = c.getint(c.getcolumnindex(contacts.id));         final string name = c.getstring(c.getcolumnindex(contacts.name));         final string phone = c.getstring(c.getcolumnindex(contacts.phone));         final string email = c.getstring(c.getcolumnindex(contacts.mail));         final string fb = c.getstring(c.getcolumnindex(contacts.fb));         final byte[] image = c.getblob(c.getcolumnindex(contacts.image));         imageview iv = (imageview) v.findviewbyid(r.id.photo);          if (image != null) {             if (image.length > 3) {                 iv.setimagebitmap(bitmapfactory.decodebytearray(image, 0,image.length));             }         }          textview tname = (textview) v.findviewbyid(r.id.name);         tname.settext(name);         textview tphone = (textview) v.findviewbyid(r.id.phone);         tphone.settext(phone);         textview temail = (textview) v.findviewbyid(r.id.email);         temail.settext(email);          final sqliteconnector sqlcon = new sqliteconnector(context);          editbtn=(imagebutton) v.findviewbyid(r.id.edit_btn);             editbtn.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view v) {                 intent intent=new intent(context,addeditcontacts.class).setflags(intent.flag_activity_new_task);                                 intent.putextra("id", id);                 intent.putextra("name", name);                 intent.putextra("phone", phone);                 intent.putextra("email", email);                 intent.putextra("fb", fb);                 intent.putextra("blob", image);                 context.startactivity(intent);             }          });          delbtn=(imagebutton) v.findviewbyid(r.id.del_btn);           delbtn.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view v) {                 sqlcon.deletecontact(id);                    intent intent=new intent(context,childrenlistfragment.class).setflags(intent.flag_activity_new_task);                 context.startactivity(intent);             }          });               v.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view v) {                 intent intent=new intent(context,viewcontact.class).setflags(intent.flag_activity_new_task);                                 intent.putextra("id", id);                 intent.putextra("name", name);                 intent.putextra("phone", phone);                 intent.putextra("email", email);                 intent.putextra("fb", fb);                 intent.putextra("blob", image);                 context.startactivity(intent);             }         });      }  } 

changed contacts activity

public class mycontactsactivity  extends listfragment{      sqliteconnector sqlcon;     private customcontactsadapter custadapter;         @override   public void onactivitycreated(bundle savedinstancestate) {       super.onactivitycreated(savedinstancestate);        activity activity = getactivity();        if (activity != null) {             string[] = new string[] { contacts.name, contacts.phone,contacts.mail };           int[] = new int[] { r.id.name, r.id.phone, r.id.email };           customcontactsadapter custadapter = new customcontactsadapter(activity,r.layout.contact_list_item, null, from, to);             this.setlistadapter(custadapter);                sqliteconnector dbconnector = new sqliteconnector(activity);         }   }      @override     public void onresume() {         super.onresume();         new getcontacts().execute((object[]) null);     }      @suppresswarnings("deprecation")     @override     public void onstop() {         cursor cursor = custadapter.getcursor();          if (cursor != null)             cursor.deactivate();          custadapter.changecursor(null);         super.onstop();      }      private class getcontacts extends asynctask<object, object, cursor> {         activity activity = getactivity();         sqliteconnector dbconnector = new sqliteconnector(activity);          @override         protected cursor doinbackground(object... params) {             return dbconnector.getallcontacts();         }          @override         protected void onpostexecute(cursor result) {             if (isdestroyed) return;             custadapter.changecursor(result);          }       }       public void oncreateoptionsmenu(menu menu,menuinflater inflater) {         //getactivity().getmenuinflater().inflate(r.menu.activity_my_contacts, menu);         super.oncreateoptionsmenu(menu, inflater);         menu.clear();         inflater.inflate(r.menu.activity_my_contacts, menu);       }      @override     public boolean onoptionsitemselected(menuitem item) {         activity activity = getactivity();         intent addcontact = new intent(activity,addeditcontacts.class);         startactivity(addcontact);         return super.onoptionsitemselected(item);     }   } 

error

07-17 22:01:33.959: e/androidruntime(10924): java.lang.nullpointerexception 07-17 22:01:33.959: e/androidruntime(10924):    @ com.ektroid.graphico.mycontactsactivity$getcontacts.onpostexecute(mycontactsactivity.java:95) 07-17 22:01:33.959: e/androidruntime(10924):    @ com.ektroid.graphico.mycontactsactivity$getcontacts.onpostexecute(mycontactsactivity.java:1) 07-17 22:01:33.959: e/androidruntime(10924):    @ android.os.asynctask.finish(asynctask.java:602) 07-17 22:01:33.959: e/androidruntime(10924):    @ android.os.asynctask.access$600(asynctask.java:156) 07-17 22:01:33.959: e/androidruntime(10924):    @ android.os.asynctask$internalhandler.handlemessage(asynctask.java:615) 07-17 22:01:33.959: e/androidruntime(10924):    @ android.os.handler.dispatchmessage(handler.java:99) 07-17 22:01:33.959: e/androidruntime(10924):    @ android.os.looper.loop(looper.java:137) 07-17 22:01:33.959: e/androidruntime(10924):    @ android.app.activitythread.main(activitythread.java:4424) 07-17 22:01:33.959: e/androidruntime(10924):    @ java.lang.reflect.method.invokenative(native method) 07-17 22:01:33.959: e/androidruntime(10924):    @ java.lang.reflect.method.invoke(method.java:511) 07-17 22:01:33.959: e/androidruntime(10924):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) 07-17 22:01:33.959: e/androidruntime(10924):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) 07-17 22:01:33.959: e/androidruntime(10924):    @ dalvik.system.nativestart.main(native method) 07-17 22:01:34.569: i/dalvikvm(10924): threadid=3: reacting signal 3 07-17 22:01:34.569: i/dalvikvm(10924): wrote stack traces '/data/anr/traces.txt' 07-17 22:01:35.859: i/process(10924): sending signal. pid: 10924 sig: 9 

inside onpostexecute use following condition

if( (!isremoving()) && (isresumed()) && cursor!=null ) 

Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -