2 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
ExpenseFragment實(shí)現(xiàn)DatePickerDialog.OnDateSetListener,因此您需要使用getTargetFragment()而不是getActivity().
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getTargetFragment(), year, month, day);
然后setTargetFragment在創(chuàng)建時(shí)使用DatePickerFragment.
mDisplayDate.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
DialogFragment datePicker = new DatePickerFragment();
datePicker.setTargetFragment(ExpenseFragment.this, 0);
datePicker.show(getFragmentManager(), "date picker");
}
});

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
偵聽器是在您的父 Fragment 中實(shí)現(xiàn)的,而不是您的父 Activity,因此您必須替換getActivity()
為getParentFragment()
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getParentFragment(), year, month, day);
添加回答
舉報(bào)