Android权威编程指南第十二章习题解答
更多对话框
其实这个题的写法和之前创建DatePicker是一样的,只不过换成了TimePicker。
首先我们创建对话框的布局TimePicker

创建TimePickerFragment,内容和DatePickerFragment近乎完全一样,不同之处在于TimePicker设置时间上有所区别(此处不详细写了,关于使用这两种对话框会用就好,需要使用时回来看代码)

在CrimeFragment的onActivityResult中,添加DateTime的获取

实现响应式DialogFragment
这道题是前面Fragment和Activity间传值的实现,之前我们讲过用Activity托管Fragment和使用intent在父activity(或父fragment)与子activity间传值,使用fragment argument在 父activity与子fragment间传值。
由于把DiaLog变成一个页面了,首先去更改布局文件,使用constraintlayout布局会很方便。

在设定好Button的id后,我们先创建托管的Activity。

在页里创建onCreateView,创建布局。

实现效果:

其实可以看出来,无论是Activity和Fragment还是Fragment之间传递消息,都是子Fragment去调用父Activity或者父Fragment的相应方法。
- Activity与Fragment 调用getAvtivity().setResult()
- Fragment间 调用
getTargetFragment().onActivityResult(getTargetRequestCode(), resultCode, intent);获取传递值