Android Fragment in alert dialog -


i making search page android application. want add search filters in sort of modal , suggestions on internet should use alertdialog fragment show custom filters. have managed fragment show in dialog code associated fragment such oncreate not being called. when use fragment directly in activity oncreate gets called not when being loaded alertdialog. there doing wrong or should doing way?

this code used open dialog

searchfilterdialogfragment dialog = new searchfilterdialogfragment();             fragmenttransaction fragmenttransaction = getfragmentmanager().begintransaction();             fragment prev = getfragmentmanager().findfragmentbytag("dialog");             if (prev != null) {                 fragmenttransaction.remove(prev);             }             fragmenttransaction.addtobackstack(null);             dialog.show(fragmenttransaction,"dialog"); 

this code dialog configuration

public class searchfilterdialogfragment extends dialogfragment {  @override public dialog oncreatedialog(bundle savedinstancestate) {      // use builder class convenient dialog construction     alertdialog.builder builder = new alertdialog.builder(getactivity());     layoutinflater inflater = getactivity().getlayoutinflater();      builder.setview(inflater.inflate(r.layout.fragment_blank,null)).settitle("search filters")             .setpositivebutton(r.string.filter_dialogue_ok, new dialoginterface.onclicklistener() {                 public void onclick(dialoginterface dialog, int id) {                     // fire ze missiles!                 }             })             .setnegativebutton(r.string.filter_dialogue_cancel, new dialoginterface.onclicklistener() {                 public void onclick(dialoginterface dialog, int id) {                     // user cancelled dialog                 }             });      return builder.create();    } 

this test fragment have actual filters in it

public class blankfragment extends fragment {    public blankfragment() {     // required empty public constructor }   @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate); }  @override public view oncreateview(layoutinflater inflater, viewgroup container,                          bundle savedinstancestate) {     // inflate layout fragment     return inflater.inflate(r.layout.fragment_blank, container, false); } 

}

dialogfragment is fragment. manages fragment lifecycle. want inside blankfragment should inside searchfilterdialogfragment. don't need blankfragment.

to answer question why blankfragment's code not geting called, it's because there's nothing referencing or instantiating blankfragment @ all. code:

builder.setview(inflater.inflate(r.layout.fragment_blank,null)) 

inflates fragment_blank layout dialogfragment, not start blankfragment code.

proper usage of dialogfragment custom setview:

@override public dialog oncreatedialog(bundle savedinstancestate) {     //set title, button etc. alertdialog     alertdialog.builder builder = new alertdialog.builder(getactivity());     builder.settitle("search filters");      //get layoutinflater     layoutinflater inflater = getactivity().getlayoutinflater();      //inflate layout store returned view allow call findviewbyid     view view = inflater.inflate(r.layout.fragment_blank,null);      //do initial code regarding view, in oncreate     view.findviewbyid(r.id.some_view);      //finally, give custom view alertdialog builder     builder.setview(view); } 

Comments