I used a DatePickerFragment
in my app . I used following code lines to my own DatePickerFragment
.
This is my DatePickerFragment
.java
public class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
private onDatePickerListener mListener;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the 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 a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
callListener(year, month, day);
}
public DialogFragment setCallbackListener(onDatePickerListener listener){
mListener = listener;
return null;
}
private void callListener(int year, int month, int day){
if (mListener != null) mListener.onDataSet(year, month, day);
}
public interface onDatePickerListener {
void onDataSet(int year, int month, int day);
}
}
And this is the way how I get a date from this DatePickerFragment
to a EditText
in my application.
@OnClick(R.id.add_info_activity_date_edit)
public void setDate() {
DatePickerFragment datePickerFragment = new DatePickerFragment();
datePickerFragment.setCallbackListener(new DatePickerFragment.onDatePickerListener() {
@Override
public void onDataSet(int year, int month, int day) {
dateEditText.setText(day + "/" + month + "/" + year);
}
});
DialogFragment datePicker = datePickerFragment;
datePicker.show(getSupportFragmentManager(), "datePicker");
}
When I select current day from datePicker , I get current day of the earlier month.
Ex :- if I select **09 DEC 2016** from the datePicker, it returns me **9/11/2016** on the `EditText`.
This is same for the other days which I selected from datePicker.
Have any ideas about this ?