Android:DatePicker - 跟踪更改日期

时间:2015-08-04 09:48:13

标签: java android date datepicker

我的布局是DatePicker,我希望当用户更改日期时,此日期会自动显示在Toast中。我用这个OnDateChangedListener.
我的build.gradle有下一个参数:

compileSdkVersion 22
minSdkVersion 14
targetSdkVersion 22

我还会写下下一个样式:

<item name="android:datePickerStyle">@android:style/Widget.DatePicker</item>

因为我希望DatePicker分3行(日,月,年)和3列(yestarday,今天,明天日期)通过向上滑动来更改日期。

这是我初始化DatePicker后的代码。

datePicker.init(today.get(Calendar.YEAR), today.get(Calendar.MONTH), today.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {
    @Override
    public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        Log.d(LOG_TAG, "onDateChanged");
        Toast.makeText(getApplicationContext(), "onDateChanged: " + dayOfMonth, Toast.LENGTH_SHORT).show();
    }
});

我在Nexus 7(API 22),仿真器Nexus 5(API 21)和5.4 FWVGA API 15上测试了应用程序。 Toast在我开始申请时以及尝试更改日期时都没有显示。为什么?

1 个答案:

答案 0 :(得分:0)

使用活动作为上下文而不是getApplicationContext(),虽然两者都是上下文类型,但在某些实现上它可能非常繁琐,因为它不知道toast属于应用程序上下文的位置。

要使用该活动,请使用MyActivity.this getApplicationContext(),其中MyActivity是datePicker所在活动的名称。

另外验证onDateChanged实际上是在日志中(即调用onDateChanged)

相关问题