Android 如何在宿主活动的片段中的DatePickerDialog中设置默认日期?

Android 如何在宿主活动的片段中的DatePickerDialog中设置默认日期?,android,android-fragments,android-calendar,android-datepicker,Android,Android Fragments,Android Calendar,Android Datepicker,因此,我在活动中创建了一个日历对象“c”,并将日期设置为2016年2月29日。我希望片段对话框将该日期加载为默认日期。我错过了什么?是否需要删除片段日历对象“cal”?如果是这样,在fragment onCreateDialog中,如何从活动中的set()方法引用或获取()日期 从活动文件: @Override protected void onCreate(Bundle savedInstanceState) { ... final Calendar c = Calendar.

因此,我在活动中创建了一个日历对象“c”,并将日期设置为2016年2月29日。我希望片段对话框将该日期加载为默认日期。我错过了什么?是否需要删除片段日历对象“cal”?如果是这样,在fragment onCreateDialog中,如何从活动中的set()方法引用或获取()日期

从活动文件:

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    final Calendar c = Calendar.getInstance();
    c.set(Calendar.YEAR, 2016);
    c.set(Calendar.MONTH, 1);
    c.set(Calendar.DAY_OF_MONTH, 29);

    DialogFragment newFragment = new DatePickerFragment();
    newFragment.show(getSupportFragmentManager(), "datePicker");
从片段文件:

...
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

        Calendar cal = Calendar.getInstance();

        currentyear = cal.get(Calendar.YEAR);
        currentmonth = cal.get(Calendar.MONTH);
        currentday = cal.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog dateDialog = new DatePickerDialog(this.getActivity(), this, currentyear,currentmonth,currentday);
       return dateDialog;

您在活动中设置的
日历c
与片段中的
日历cal
不同,它们是两个不同的实例

我建议您使用
Bundle
将年、月、日传递给片段,这样您就可以:

Bundle data=新Bundle();
data.putInt(“…”,“…”)//
DialogFragment df=新的DialogFragment();
设置参数(数据)

然后在片段中的
onCreateDialog
中,使用以下方法检索数据:

int year = getArguments("...");

好的,我认为2个日历对象是错误的。我是否必须在片段和活动之间设置回调侦听器(接口)?或者Bundle的putInt和setArguments是否适用于带有getInt和getArguments的片段的活动?要将数据从活动传递到片段,“setArguments”和“getArguments”就足够了;要将数据从片段传递到活动,我建议您使用回调侦听器!有趣。好的,另一位评论员建议我可以使用set()和get()方法,而不需要捆绑包或侦听器。如果你不介意,有几分钟的时间,你能告诉我你的想法吗:看下面,这是Android开发者的官方网站,它建议在活动和片段之间通信时使用回调接口:)是的,我读到了,并尝试设置侦听器,但运气不佳,不确定如何诊断问题。问题:如果我在片段中收到一个日期,并在datepickerdialog中加载一个Bundle,我是否必须与侦听器就xml文件中的EditText与活动进行通信?或者我可以在片段中使用onDateSet,而不必设置侦听器接口吗?