1

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 ?

Terance Wijesuriya
  • 1,928
  • 9
  • 31
  • 61

0 Answers0