c# - 适用于 Android 的 Datepicker DialogFragment 单声道

标签 c# android .net mono xamarin.android

我正在开发这个应用程序,其中一个 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传递DateTimeDateChanged事件。

关于c# - 适用于 Android 的 Datepicker DialogFragment 单声道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18873712/

相关文章:

java - 如何使用scrollView在两个 fragment 之间进行通信?

c# - 在 TFS 和 visual studio 中管理数据库项目的最佳实践

android - 可访问性服务可以停止或终止吗?

android - 按钮在它上面重叠 View

c# - 如何阻止变量重置

c# - 如何检查 RavenDB 中是否存在表(实体)

.net - 学习 Asp.Net WebForms 或 Asp.Net MVC

c# - System.Text.Json JsonElement.GetProperty() KeyNotFoundException 异常

c# - 让 Levenstein 的距离算法满足我的需要

c# - 是否可以在 SandcaSTLe 文档中包含自定义属性?