按照您的帖子顺序... \
1) the onCreateDialog
将对话框返回到 DialogFragment。
2)我不知道mDateDetailFragment.updateDate(date);
线...我认为他可能遗漏了一些代码。EDIT找到了,它位于完整演示的 zip 文件中的类之一中。
3)您正在使用片段管理器(它是getSupportFragmentManager()
part):
ddf.show(getSupportFragmentManager(), "date picker dialog fragment");
好吧,这就是我的做法(我使用的是 DateSlider,但是在 Datepicker 中进行替换对您来说应该足够简单)。
在调用 DialogFragment 的片段/活动中:
DialogFragment newFragment = new DateDialog();
newFragment.show(getFragmentManager(), "dialog");
还有我的 DialogFragment:
public class DateDialog extends DialogFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
private DateSlider.OnDateSetListener mDateSetListener = new DateSlider.OnDateSetListener() {
public void onDateSet(DateSlider view, Calendar selectedDate) {
MemberAddFragment.startTxt.setText(String.format("%tB %te, %tY", selectedDate, selectedDate, selectedDate));
}
};
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar c = Calendar.getInstance(); // Get calendar instance to use in DateSlider
return new AlternativeDateSlider(getActivity(),mDateSetListener,c,null,null); // return DateSlider dialog to DialogFragment
}
}
希望这有助于消除您的困惑。