建立CrimeFragment与DateFragment之间的联系后,需要将数据回传给CrimeFragment。回传日期将作为extra附加给Intent。
使用什么方法发送intent信f息给目标Fragment?虽然很难让人相信,但是我们会让DatePickerFragment类调用CrimeFragment.onActivityResult(int、,int,Intent)方法。
处理由同一activity托管的两个fragment间的数据返回时,可借用Fragment.onActivity-Result()方法。因此,直接调用目标fragment的Fragment.onActivityResult()方法,就能实现数据的回传。该方法有我们需要的信息
1.请求代码
2.结果代码
3.Intent:包含extra数据
回调目标fragment
public class DatePickerFragment extends DialogFragment {
public static final String EXTRA_DATE =
"com.bignerdranch.android.criminalintent.date";
private static final String ARG_DATE = “date”;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
…
}
private void sendResult(int resultCode, Date date) {
if (getTargetFragment() == null) {
return;
}
Intent intent = new Intent();
intent.putExtra(EXTRA_DATE, date);
getTargetFragment()
.onActivityResult(getTargetRequestCode(), resultCode, intent);
}
}