在自定义视图中显示TimePickerDialog或DatePicker

时间:2012-05-25 18:19:07

标签: android android-custom-view android-datepicker

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

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

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

我怎样才能实现这一目标? 提前谢谢......

1 个答案:

答案 0 :(得分: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()