2 回答

TA貢獻1777條經驗 獲得超10個贊
ExpenseFragment實現DatePickerDialog.OnDateSetListener,因此您需要使用getTargetFragment()而不是getActivity().
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getTargetFragment(), year, month, day);
然后setTargetFragment在創建時使用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貢獻1868條經驗 獲得超4個贊
偵聽器是在您的父 Fragment 中實現的,而不是您的父 Activity,因此您必須替換getActivity()
為getParentFragment()
return new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener) getParentFragment(), year, month, day);
添加回答
舉報