Java 扩展日期选择器的DialogFragment

Java 扩展日期选择器的DialogFragment,java,android,android-fragments,Java,Android,Android Fragments,我将尝试遵循本教程: 这是他们提供的代码,所以我创建了一个新类。但是我在新课上犯了错误。定义公共静态类DatePickerFragment时出错。错误是类DatePickerFragment的非法修饰符;仅允许公开、摘要和最终版本 public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListene

我将尝试遵循本教程:

这是他们提供的代码,所以我创建了一个新类。但是我在新课上犯了错误。定义
公共静态类DatePickerFragment
时出错。错误是类DatePickerFragment的
非法修饰符;仅允许公开、摘要和最终版本

public static class DatePickerFragment extends DialogFragment
                            implements DatePickerDialog.OnDateSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current date as the default date in the picker
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);

        // Create a new instance of DatePickerDialog and return it
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        // Do something with the date chosen by the user
    }
}

我猜您的代码在一个单独的.java文件中。去掉
静态
关键字

如果它是一个内部类,那么可以在Activity类中使用静态修饰符say

另外,请检查这一点,即顶级类不能是静态的

你可以找到一个例子@


发布完整的代码。这是在活动中还是在单独的.java文件中?错误消息非常清楚。你有一个非法的修饰语。特别是,导致错误的是“static”关键字。这是一个单独的.java文件,我认为教程正在这样做。谢谢。我不知道代码是要放在活动内部的。@EGHDK没有必要将相同的代码放在活动内部。去掉静态关键字什么是将整年、日、月传递回我的活动的最佳方法?@EGHDK使用接口a调用活动。您可以查看我很久以前发布的示例