android - Fragments, how to start Dialog from fragment? -


i read dialogfragment, , make 1 in 1 this.

import android.app.alertdialog; import android.app.dialog; import android.content.dialoginterface; import android.os.bundle; import android.support.v4.app.dialogfragment;  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)             .setpositivebutton("ok",                 new dialoginterface.onclicklistener() {                     public void onclick(dialoginterface dialog, int whichbutton) {                         addexercisefragment.dopositiveclick();                     }                 }             )             .setnegativebutton("no",                 new dialoginterface.onclicklistener() {                     public void onclick(dialoginterface dialog, int whichbutton) {                        addexercisefragment.donegativeclick();                     }                 }             )             .create(); }  } 

and in sherlockfragment make next:

public void dopositiveclick() {   }  public  void donegativeclick() {   } void showdialog() {     dialogfragment newfragment = mydialogfragment.newinstance(             r.string.name);     newfragment.show(getfragmentmanager(), "dialog"); } 

but methods dopositiveclick(),donegativeclick() wants static - bad me.

public void dopositiveclick() {     dialogflag = 0;     intent photopickerintent = new intent(intent.action_pick);     photopickerintent.settype("image/*");     startactivityforresult(photopickerintent, gallery_request);     // dialog.cancel();  }   @override public void onactivityresult(int requestcode, int resultcode,         intent imagereturnedintent) {     super.onactivityresult(requestcode, resultcode, imagereturnedintent);     string path = null;     if (dialogflag == 0) {           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 = 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;             }          }     } } 

in fragment class

declare below

public static final int dialog_fragment = 1; public static final int result_ok = 101; 

then

   dialogfragment newfragment = mydialogfragment.newinstance(         r.string.name);    newfragment.settargetfragment(sherlockfragmentname.this, dialog_fragment);     newfragment.show(getfragmentmanager(), "dialog"); 

then in dialog fragment

    .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);                 }             }         ) 

then override onactivityresult in fragment class

    @override public void onactivityresult(int requestcode, int resultcode, intent data) {         switch(requestcode) {             case dialog_fragment:                  if (resultcode == result_ok) {                     boolean check = data.getbooleanextra("key", true);                     if(check)                     {                         dopositiveclick();                     }                     else                     {                         donegativeclick();                     }                 }                  break;         }     } 

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 -