1

我正在开发这个在其中一个片段中有一个 DatePicker 的应用程序。要拥有一个 Diolog,我了解到您必须使用自定义构建的 DialogFragments,这在制作 AlertDialog 或 ProgressDialog 时非常容易,但是当涉及到 DatePickerDialog 时,我被卡住了。

有没有人可以解释如何做到这一点或有一些 DatePicker DialogFragment 的代码示例?不知何故,这个 DatePickerFragment 应该能够将选定的日期发送给启动它的 Fragment。

4

1 回答 1

4

我会尝试类似的东西:

public class MyDateTimeDialogFragment : DialogFragment
{
    public event EventHandler DateChanged;
    public DateTime Date { get; private set; }

    private readonly int _year;
    private readonly int _day;
    private readonly int _month;

    public MyDateTimeDialogFragment(int year, int month, int day)
    {
        _year = year;
        _month = month;
        _day = day;
    }

    public override Dialog OnCreateDialog(Bundle savedInstanceState)
    {
        var dialog = new DatePickerDialog(Activity, CallBack, _year, _month, _day);
        return dialog;
    }

    private void CallBack(object sender, DatePickerDialog.DateSetEventArgs dateSetEventArgs)
    {
        Date = dateSetEventArgs.Date;
        if (DateChanged != null)
            DateChanged(this, EventArgs.Empty);
    }
}

您可以通过创建自己的来扩展它EventArgs并在事件EventHandler中传递。DateTimeDateChanged

于 2013-09-18T17:19:42.120 回答