【发布时间】:2012-06-13 04:18:35
【问题描述】:
所以我已经有一段时间了,我似乎无法弄清楚。我是 Android 开发的新手,所以请多多包涵。我对创建 Datepicker 不太熟悉,我学会了以不推荐的方式来完成它,只是为了掌握它的窍门。使用本教程让我快速掌握:
http://developer.android.com/resources/tutorials/views/hello-datepicker.html
但现在我需要更改它,主要是不使用已弃用的代码,所以我环顾四周,找到了 2 个教程,但主要是这个:
http://www.kylebeal.com/2011/11/android-datepickerdialog-and-the-dialogfragment/
问题是,有些代码没有意义。主要是这部分:
//create new DateDialogFragment
DateDialogFragment ddf = DateDialogFragment.newInstance(this, R.string.set_date, date);
ddf.setDateDialogFragmentListener(new DateDialogFragmentListener() {
@Override
public void dateDialogFragmentDateSet(Calendar date) {
// update the fragment
mDateDetailFragment.updateDate(date);
}
});
ddf.show(getSupportFragmentManager(), "date picker dialog fragment");
假设是在它运行的活动类中运行的内容。所以我有点了解其余代码中发生的情况,并随意查看其余部分,因为它可能会有所帮助。该代码基本上遵循与原始showDialog() 代码几乎相同的路线。实现DatePickerDialog.onDateSetListener,并返回一个新的DatePickerDialog,明显的例外是它使用了DialogFragment。但这就是我迷路的地方。
部分原因是因为我不确定在哪里 onCreateDialog() 返回那个新的 DatePickerDialog。如果您查看我说的代码没有意义,mDateDetailFragment 和 getSupportFragmentManager() 都从未实例化或出现在其他任何地方,所以我无法让教程代码工作。 Android Doc 还提到,我应该同时使用DialogFragment 和FragmentManager,而不是使用showDialog(),这里也没有这样做。只有 DialogFragment。
就像标题一样,我如何才能以非弃用形式制作 DatPicker?我会要求不给我一个链接,然后说看看这里。我已经做到了。相信我。如果不是,至少解释一下我错过了什么才有意义。此外,如果有人能告诉我onCreateDialog() 方法将DatePickerDialog 发送到哪里,那也将非常有帮助。我只是想弄明白这一切,而不是复制和粘贴代码(无论如何它都不起作用)。非常感谢您抽出宝贵时间阅读本文,如果需要任何说明,请询问。
【问题讨论】:
标签: android android-fragments android-dialogfragment android-datepicker