Android 单击中性按钮时在DatePickerDialog中获取日期设置

Android 单击中性按钮时在DatePickerDialog中获取日期设置,android,Android,当按下空档按钮时,我试图让我的DatePickerDialog打开一个TimePickerDialog,但是,似乎我在试图找到答案时遇到了死胡同 首先,我想输入一个OnClicklistener,但是我该如何获得日期呢 其次,如果我在datePickerDialog中使用onDateSet,如何检查是否按下了空档按钮 任何帮助都将不胜感激 public class DatePickerDialogFragment extends DialogFragment implements DateP

当按下空档按钮时,我试图让我的
DatePickerDialog
打开一个
TimePickerDialog
,但是,似乎我在试图找到答案时遇到了死胡同

  • 首先,我想输入一个
    OnClick
    listener,但是我该如何获得日期呢
  • 其次,如果我在
    datePickerDialog
    中使用
    onDateSet
    ,如何检查是否按下了空档按钮
任何帮助都将不胜感激

public class DatePickerDialogFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener{
int position;

@SuppressLint("ValidFragment")
public DatePickerDialogFragment(int position) {
    this.position = position;
}
public DatePickerDialogFragment() {
    this(-1);
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    final Calendar calendar = Calendar.getInstance();
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    int day = calendar.get(Calendar.DAY_OF_MONTH);

    DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), this, year, month, day);
    datePickerDialog.setCanceledOnTouchOutside(false);
    datePickerDialog.setButton(DialogInterface.BUTTON_NEUTRAL, "Set Time", //What do I do here?);
    return new DatePickerDialog(getActivity(), this, year, month, day);
}

@Override
public void onCancel(DialogInterface dialog) {
    if (position != -1)
    new RecyclerAdapter(getActivity()).notifyItemChanged(position);
}

@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
    Log.d("We have liftoff!", "DPD Listener called!");
    Log.d("onDateSet method", "Date set for: "+ dayOfMonth + "/" + monthOfYear + "/" + year);

    if (position == -1) {
        ((MainActivity) getActivity()).setAlarm(year, monthOfYear, dayOfMonth);
        // Call method from other activity
    }
    else {
        ((MainActivity)getActivity()).setAlarm(position, year, monthOfYear, dayOfMonth);
    }
}
}

好吧,我以前应该想到这一点,但我所做的只是使用
datePickerDialog.getDatePicker.getWhatever
从DatePicker获取我的值,然后传递它。我真的是个白痴。

好吧,我以前应该想到这一点,但我所做的只是使用
datePickerDialog.getDatePicker.getwhich
从日期选择器获取我的值,然后传递它。我真的是个白痴