Is it possible to have just one DatePickerFragment, that can be used in different activities? My DatePickerFragment:
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
final Calendar cal = new GregorianCalendar();
int year;
int month;
int day;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
year = cal.get(Calendar.YEAR);
month = cal.get(Calendar.MONTH);
day = cal.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
updateDate(year, month, day);
}
public void updateDate(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
cal.set(year, month, day);
}
}
I found here that with
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getActivity(), year, month, day);
it should be possible to implement onDateSet right in the Activiy.
public class MyActivity extends FragmentActivity implements DatePickerDialog.OnDateSetListener {
...
public void changeDate(View v) {
log("Changing Date");
DatePickerFragment datePickerFragment = new DatePickerFragment();
datePickerFragment.show(getFragmentManager(), "datePicker");
}
public void onDateSet(DatePicker view, int year, int month, int day) {
log(String.format("Date changed: %d-%d-%d", year, month, day));
}
But onDateSet won't be executed. What's my mistake? I simply want a single reusable Fragment that I can use in different activities without writing the same code in every activity.