Wednesday 15 April 2015

android - Send Data from DialogFragment to Fragment -



android - Send Data from DialogFragment to Fragment -

i have fragment contain edittext when click on edittext datepicker dialog appears select date. fragmentfile

public class firstfragment extends fragment { @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.fragment_first, container, false); edittext edittext = (edittext) view.findviewbyid(r.id.visitdatefiled); edittext.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { dialogfragment picker = new datepickerfragment(); picker.show(getfragmentmanager(), "date picker"); } }); homecoming view; }

dialogfragment

public class datepickerfragment extends dialogfragment implements datepickerdialog.ondatesetlistener { @override public dialog oncreatedialog(bundle savedinstancestate) { // utilize current date default date in picker final calendar c = calendar.getinstance(); int year = c.get(calendar.year); int month = c.get(calendar.month); int day = c.get(calendar.day_of_month); // create new instance of datepickerdialog , homecoming homecoming new datepickerdialog(getactivity(), this, year, month, day); } @override public void ondateset(datepicker view, int year, int month, int day) { calendar c = calendar.getinstance(); c.set(year, month, day); simpledateformat sdf = new simpledateformat("dd-mm-yyyy"); string formatteddate = sdf.format(c.gettime()); } }

the problem don't know how pass info (selected date) dialogfragment fragment? read topic it's not helping got confused(sorry asking question again).

topic 1 topic 2

updated code

fragmentfile

public class firstfragment extends fragment implements datepickerdialogfragmentevents{ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.fragment_first, container, false); edittext edittext = (edittext) view.findviewbyid(r.id.visitdatefiled); edittext.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { dialogfragment picker = new datepickerfragment(); picker.setdatepickerdialogfragmentevents(firstfragment.this); //changed picker.show(getfragmentmanager(), "date picker"); } }); homecoming view; } //this selected date value @override public void ondateselected(string date) { string selecteddate = date; } }

dialogfragment

public class datepickerfragment extends dialogfragment implements datepickerdialog.ondatesetlistener { //interface created communicating dialog fragment events called fragment public interface datepickerdialogfragmentevents{ void ondateselected(string date); } datepickerdialogfragmentevents dpdfe public void setdatepickerdialogfragmentevents(datepickerdialogfragmentevents dpdfe){ this.dpdfe = dpdfe; } @override public dialog oncreatedialog(bundle savedinstancestate) { // utilize current date default date in picker final calendar c = calendar.getinstance(); int year = c.get(calendar.year); int month = c.get(calendar.month); int day = c.get(calendar.day_of_month); // create new instance of datepickerdialog , homecoming homecoming new datepickerdialog(getactivity(), this, year, month, day); } @override public void ondateset(datepicker view, int year, int month, int day) { calendar c = calendar.getinstance(); c.set(year, month, day); simpledateformat sdf = new simpledateformat("dd-mm-yyyy"); string formatteddate = sdf.format(c.gettime()); dpdfe.ondateselected(formatteddate); //changed } }

so created interface named datepickerdialogfragmentevents in dialogfragment class , implemented in caller fragment. caller fragment when create instance of dialogfragment, set datepickerdialogfragmentevents instance of fragment using setdatepickerdialogfragmentevents method of dialog fragment class.

android android-fragments

No comments:

Post a Comment