Android:DatePickerFragment无法正常工作

时间:2016-12-09 07:07:31

标签: java android calendar android-datepicker

我在我的应用中使用了DatePickerFragment。我使用以下代码行到我自己的DatePickerFragment

这是我的 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);
    }
}

这就是我在应用程序中从DatePickerFragmentEditText获取约会的方式。

@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");
}

当我从datePicker中选择当天时,我会获得前一个月的当前日期。

Ex :- if I select **09 DEC 2016** from the datePicker, it returns me **9/11/2016** on the `EditText`. 

这与我从datePicker中选择的其他日期相同。

对此有什么想法吗?

0 个答案:

没有答案