我在我的应用中使用了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);
}
}
这就是我在应用程序中从DatePickerFragment
到EditText
获取约会的方式。
@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中选择的其他日期相同。
对此有什么想法吗?