首页 > 解决方案 > 通过不同的方法应用课程日历

问题描述

我正在尝试在我的一个片段中创建日历,但我不知道如何将日历类调用到 onCreate(); fragmentTwo.java 中的函数。我已经尝试过了,但我不断收到错误:

致命错误尝试在空对象引用上调用虚拟方法 'android.view.Window$Callback android.view.Window.getCallback()'

.

片段二.java:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Calendar calendar = new Calendar();
    calendar.setContentView(R.layout.calendar);
}

日历.java:

public class Calendar extends AppCompatActivity {

    CalendarView calendarView;
    TextView dateDisplay;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.calendar);

        calendarView = (CalendarView) findViewById(R.id.calendarView);
        dateDisplay = (TextView) findViewById(R.id.date_display);
        dateDisplay.setText("Date: ");

        calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(CalendarView calendarView, int i, int i1, int i2) {
                dateDisplay.setText("Date: " + i2 + " / " + i1 + " / " + i);

                Toast.makeText(getApplicationContext(), "Selected Date:\n" + "Day = " + i2 + "\n" + "Month = " + i1 + "\n" + "Year = " + i, Toast.LENGTH_LONG).show();
            }
        });
    }
}

如何在我的 fragmentTwoonCreate()函数中应用 Calendar 类?

标签: javaandroidcalendar

解决方案


Fragment 中的onCreate()方法在 Activity 的 onAttachFragment() 之后但在 Fragment 之前调用onCreateView()

所以基本上你不能在 onCreate() 中查看东西。

所以你需要添加这两行

Calendar calendar = new Calendar();
calendar.setContentView(R.layout.calendar);

onCreateView()

链接到文档


推荐阅读