java - Android:DatePicker - 跟踪更改日期

标签 java android date datepicker

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

compileSdkVersion 22
minSdkVersion 14
targetSdkVersion 22

还有我接下来写的样式:

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

因为我想要 3 行(日、月、年)和 3 列(昨天、今天、明天日期)的 DatePicker 通过上下滑动来更改日期。

这是我初始化 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 不显示。为什么?

最佳答案

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

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

还要验证 onDateChanged 实际上在日志中(即 onDateChanged 被调用)

关于java - Android:DatePicker - 跟踪更改日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31805962/

相关文章:

java - 从 .txt 文件编译 .class 文件

java - 如何启用 Weblogic 12.1.2 JPA 2.1

java - 我想使用 netbeans 从按钮执行 .exe

java - 是否可以使用 JFileChooser 一次选择多个目录

php - 选择日期之前

android - android中的二维码生成器

java - Android Fragment中如何中断线程?

javascript - Sencha Touch 2 + PhoneGap + iPad : Video with base64 encoded data: "The Operation could not be completed"

Java 8 分区日期转换

c# - C#中日期范围内的天数,不包括周末和其他日期