1

フラグメントの 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 に答える