android - StartActivityForResult from Fragmnet -


i have 2 imageview , 2 buttons. when button pressed - dialog started. positive answer - picture galery, negative - camera. first write in activity(this code work good):

@override protected void onactivityresult(int requestcode, int resultcode,         intent imagereturnedintent) {     string path = null;     if (dialogflag == 0) {         super.onactivityresult(requestcode, resultcode, imagereturnedintent);          switch (requestcode) {         case gallery_request:             if (resultcode == result_ok) {                 uri selectedimage = imagereturnedintent.getdata();                 path = getrealpathfromuri(selectedimage);                 log.d("mylogs", path);                 if (btnid == 1) {                     pathone = path;                     bitmap bmimg = bitmapfactory.decodefile(pathone);                     ivone.setimagebitmap(bmimg);                     1 = bmimg;                 } else {                     pathtwo = path;                     bitmap bmimg = bitmapfactory.decodefile(pathtwo);                     ivtwo.setimagebitmap(bmimg);                     2 = bmimg;                 }              }         }     }     if (dialogflag == 1) {         uri uri;         if (requestcode == camera_result) {             cursor cursor = getcontentresolver().query(                     media.external_content_uri,                     new string[] { media.data, media.date_added,                             mediastore.images.imagecolumns.orientation },                     media.date_added, null, "date_added asc");             if (cursor != null && cursor.movetofirst()) {                 {                     uri = uri.parse(cursor.getstring(cursor                             .getcolumnindex(media.data)));                     path = uri.tostring();                 } while (cursor.movetonext());                 cursor.close();             }             log.d("mylogs", path);             if (btnid == 1) {                 pathone = path;                 bitmap bmimg = bitmapfactory.decodefile(pathone);                 ivone.setimagebitmap(bmimg);                 1 = bmimg;             } else {                 pathtwo = path;                 bitmap bmimg = bitmapfactory.decodefile(pathtwo);                 ivtwo.setimagebitmap(bmimg);                 2 = bmimg;             }          }     } }  @override protected dialog oncreatedialog(int id) {     switch (id) {     case idd_two_buttons:         alertdialog.builder builder = new alertdialog.builder(this);         builder.setmessage("Зображення з ")                 .setcancelable(false)                 .setpositivebutton("Галереї",                         new dialoginterface.onclicklistener() {                             @override                             public void onclick(dialoginterface dialog,                                     int id) {                                 dialogflag = 0;                                 intent photopickerintent = new intent(                                         intent.action_pick);                                 photopickerintent.settype("image/*");                                 startactivityforresult(photopickerintent,                                         gallery_request);                                 dialog.cancel();                             }                         })                 .setneutralbutton("Камери",                         new dialoginterface.onclicklistener() {                             @override                             public void onclick(dialoginterface dialog,                                     int id) {                                 dialogflag = 1;                                 intent cameraintent = new intent(                                         mediastore.action_image_capture);                                 startactivityforresult(cameraintent,                                         camera_result);                                 dialog.cancel();                             }                         }                  )                 .setnegativebutton("Відміна",                         new dialoginterface.onclicklistener() {                             @override                             public void onclick(dialoginterface dialog,                                     int id) {                                 dialog.cancel();                             }                         }                  );          return builder.create();     default:         return null;     } } 

but when try make in fragment problem.

public class mydialogfragment extends dialogfragment { public static mydialogfragment newinstance(int title) {     mydialogfragment frag = new mydialogfragment();     bundle args = new bundle();     args.putint("title", title);     frag.setarguments(args);     return frag; } @override public dialog oncreatedialog(bundle savedinstancestate) {     int title = getarguments().getint("title");      return new alertdialog.builder(getactivity())             .seticon(r.drawable.plus_icon)             .settitle(title).setcancelable(false)             .setpositivebutton("ok",         new dialoginterface.onclicklistener() {             public void onclick(dialoginterface dialog, int whichbutton) {                 intent =getactivity().getintent();                 i.putextra("key", true);                 gettargetfragment().onactivityresult(gettargetrequestcode(), 101, i);             }         }     )     .setnegativebutton("no",         new dialoginterface.onclicklistener() {             public void onclick(dialoginterface dialog, int whichbutton) {                //addexercisefragment.donegativeclick();                 intent =getactivity().getintent();                 i.putextra("key", false);                  gettargetfragment().onactivityresult(gettargetrequestcode(), 101, i);             }         }     )             .create(); }  } 

onactivityresult in addexercisefragment

    @override public void onactivityresult(int requestcode, int resultcode,         intent imagereturnedintent) {      string path = null;     switch (requestcode) {     case dialog_fragment:         boolean check = imagereturnedintent.getbooleanextra("key", true);         if (check) {             dopositiveclick();             if (resultcode == result_ok && requestcode == gallery_request) {                 uri selectedimage = imagereturnedintent.getdata();                 path = getrealpathfromuri(selectedimage);                 log.d("mylogs", path);                 if (btnid == 1) {                     pathone = path;                     bitmap bmimg = bitmapfactory.decodefile(pathone);                     ivone.setimagebitmap(bmimg);                     1 = bmimg;                 } else {                      pathtwo = path;                     bitmap bmimg = bitmapfactory.decodefile(pathtwo);                     ivtwo.setimagebitmap(bmimg);                     2 = bmimg;                 }             }         } else {             donegativeclick();             uri uri;              cursor cursor = getactivity().getcontentresolver().query(                     media.external_content_uri,                     new string[] { media.data, media.date_added,                             mediastore.images.imagecolumns.orientation },                     media.date_added, null, "date_added asc");             if (cursor != null && cursor.movetofirst()) {                 {                     uri = uri.parse(cursor.getstring(cursor                             .getcolumnindex(media.data)));                     path = uri.tostring();                 } while (cursor.movetonext());                 cursor.close();             }             log.d("mylogs", path);             if (btnid == 1) {                 pathone = path;                 bitmap bmimg = bitmapfactory.decodefile(pathone);                 ivone.setimagebitmap(bmimg);                 1 = bmimg;             } else {                 pathtwo = path;                 bitmap bmimg = bitmapfactory.decodefile(pathtwo);                 ivtwo.setimagebitmap(bmimg);                 2 = bmimg;             }          }         break;     } }  public void dopositiveclick() {     dialogflag = 0;      intent photopickerintent = new intent(intent.action_pick);     photopickerintent.settype("image/*");     startactivityforresult(photopickerintent, gallery_request);     // dialog.cancel();  }  public void donegativeclick() {     dialogflag = 1;     intent cameraintent = new intent(mediastore.action_image_capture);     startactivityforresult(cameraintent, camera_result);  }  void showdialog() {     dialogfragment newfragment = mydialogfragment             .newinstance(r.string.name);     newfragment.show(getfragmentmanager(), "dialog"); } 

but have next:

  1. if want set image galery-it start galery, can not choose picture there
  2. from camera can set picture once , 1 imageview
  3. when in galery , press button "back" - error.


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -