0

很久以前,我开发了一个自定义日期时间选择器控件。这个自定义选择器控件是继承自 LinearLayout 类开发的,具有一些功能,例如在设计时设置属性的“declare-styleable”属性,一组模拟事件的接口,最后还有大量的代码来播放效果和管理日期时间业务逻辑。

现在我需要通过在我的自定义控件中按下按钮来显示 DatePickerDialog 和 TimePickerDialog。我搜索了 android 知识库,发现显示这些对话框的唯一方法是Developer's DatePicker Guide

因为我的控件直接继承自LinearLayout,所以不能重写onCreateDialog()方法来提供对话框,因为LinearLayout没有这个方法!如何在我的自定义控件中显示这些对话框而不引用父活动?实际上,我希望有机会尽可能地在许多活动上绘制控件,而不必担心在每个活动上管理 onCreateDialog(),因为加载和启动对话框的代码在我的自定义控件中定义一次(就像你当您必须显示 MessageBoxes [MessageBox.Show() 不需要 Form 实例]) 时,在一个简单的 .NET 控件中执行...

我怎样才能做到这一点?提前致谢...

4

1 回答 1

3

而不是使用 Activity.showDialog()、onCreateDialog() 等;只需使用 Dialog.show()。

Calendar calendar = Calendar.getInstance();
mDialog = new DatePickerDialog(context, onDateSetListener, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
mDialog.show();

在按钮的 onClickListener 中,您可以随意修改mDialog,然后调用mDialog.show().

于 2012-05-25T18:56:12.230 回答