我正在开发这个应用程序,其中一个 fragment 中有一个 DatePicker。要拥有 Diolog,我了解到您必须使用自定义构建的 DialogFragments,这在制作 AlertDialog 或 ProgressDialog 时非常容易,但当涉及到 DatePickerDialog 时,我就卡住了。
有没有人可以解释如何执行此操作或有一些 DatePicker DialogFragment 的代码示例?这个 DatePickerFragment 应该能够以某种方式将选定的日期发送到启动它的 fragment 。
最佳答案
我会尝试这样的事情:
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
传递DateTime
在DateChanged
事件。
关于c# - 适用于 Android 的 Datepicker DialogFragment 单声道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18873712/