android - Nullpointerexcepiton on cursor while selecting photo from gallery on dialog fragment -


i'm trying select photo gallery through dialogfragment. i'm getting nullpointerexception while initializing cursor. ideas why getting error?

below code :

    if (resultcode == activity.result_ok) {         uri selectedimage = imagereturnedintent.getdata();         string[] filepathcolumn = {mediastore.images.media.data};         // nullpointerexcepiton on line         cursor cursor = getactivity().getcontentresolver().query(selectedimage, filepathcolumn, null, null, null);         cursor.movetofirst();         int columnindex = cursor.getcolumnindex(filepathcolumn[0]);          cursor.close();      } 

here logcat error :

    03-24 12:34:37.645: e/androidruntime(21479): java.lang.runtimeexception: failure delivering result resultinfo{who=null, request=65538, result=-1, data=intent { dat=content://media/external/images/media/3890 flg=0x1 }} activity {com.example/com.example.mainactivity}: java.lang.nullpointerexception      03-24 12:34:37.645: e/androidruntime(21479):    @ android.app.activitythread.deliverresults(activitythread.java:3462)     03-24 12:34:37.645: e/androidruntime(21479):    @ android.app.activitythread.handlesendresult(activitythread.java:3505)     03-24 12:34:37.645: e/androidruntime(21479):    @ android.app.activitythread.access$1100(activitythread.java:150)     03-24 12:34:37.645: e/androidruntime(21479):    @ android.app.activitythread$h.handlemessage(activitythread.java:1346)     03-24 12:34:37.645: e/androidruntime(21479):    @ android.os.handler.dispatchmessage(handler.java:99)     03-24 12:34:37.645: e/androidruntime(21479):    @ android.os.looper.loop(looper.java:213)     03-24 12:34:37.645: e/androidruntime(21479):    @ android.app.activitythread.main(activitythread.java:5225)     03-24 12:34:37.645: e/androidruntime(21479):    @ java.lang.reflect.method.invokenative(native method)     03-24 12:34:37.645: e/androidruntime(21479):    @ java.lang.reflect.method.invoke(method.java:525)     03-24 12:34:37.645: e/androidruntime(21479):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:741)     03-24 12:34:37.645: e/androidruntime(21479):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:557)     03-24 12:34:37.645: e/androidruntime(21479):    @ dalvik.system.nativestart.main(native method)      03-24 12:34:37.645: e/androidruntime(21479): caused by: java.lang.nullpointerexception     03-24 12:34:37.645: e/androidruntime(21479):    @ com.example.maindialogfragment.onactivityresult(maindialogfragment.java:226)     03-24 12:34:37.645: e/androidruntime(21479):    @ com.example.mainactivity.onactivityresult(delictactivity.java:85)     03-24 12:34:37.645: e/androidruntime(21479):    @ android.app.activity.dispatchactivityresult(activity.java:5322)     03-24 12:34:37.645: e/androidruntime(21479):    @ android.app.activitythread.deliverresults(activitythread.java:3458)     03-24 12:34:37.645: e/androidruntime(21479):    ... 11 more 

how start activity , where? if pass result trough mainactivity, can try make new function in dialogfragment this:

public void onmyactivityresult(context main, int resultcode... on){       main.getcontentresolver.......  } 

edit: have done in way:

get activity in oncreate:

@override     public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     mactivity = (mainactivity) this.getactivity();     } 

then:

     @override     public void onactivityresult(int requestcode, int resultcode, intent data) {        if (requestcode == request_gallery && resultcode == activity.result_ok) {            ...              uri selectedimage = data.getdata();             string path = getrealpathfromuri(selectedimage);            ...             reloadimages();          }         super.onactivityresult(requestcode, resultcode, data);         } 

and:

 private string getrealpathfromuri(uri contenturi) {     cursor cursor = mactivity.getcontentresolver().query(contenturi, null, null, null, null);     if (cursor == null) { // source dropbox or other similar local file                   // path         return contenturi.getpath();     } else {         cursor.movetofirst();         int idx = cursor.getcolumnindex(mediastore.images.imagecolumns.data);         string path = cursor.getstring(idx);         cursor.close();         return path;     }     } 

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 -