java - 无法在我的代码中访问 DatePicker.ValidationCallback

标签 java android datepicker android-widget

我有一个扩展 DialogFragment 的简单 DatePickerFragment。我想设置一个验证回调,这样如果选择了无效日期,我就可以防止选择“确定”。我首先尝试了 setMaxDate ,它使无效选项变灰,但仍然允许选择它们并按下“确定”。所以我希望设置验证回调是解决方案。

abstract public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {

    public DatePickerDialog datePickerDialog;

  //  public DatePickerFragment() {
  //
  //  }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        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);

        datePickerDialog = new DatePickerDialog(getActivity(), this, year, month, day);
        DatePicker datePicker = datePickerDialog.getDatePicker();
        datePicker.setMaxDate(c.getTimeInMillis());

        // this won't resolve!
        datePicker.setValidationCallback( xxx );

        return datePickerDialog;
    }

}

我不明白为什么我无法访问或引用 android.widget.DatePicker.ValidationCallback 或代码中的任何相关位。如果我按 CTRL+B 查看 DatePickerDialog,我可以看到它导入它并引用这些字段。一切似乎都是公开的。但我什至无法解决导入问题。可能出什么问题了?这是最新 Android Studio 的全新安装,我的 gradle 文件如下所示:

dependencies {
    // Include local libraries
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // Android support libraries
    compile 'com.android.support:support-v4:22.1.1'
    compile 'com.android.support:support-v13:22.1.1'
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile 'com.android.support:recyclerview-v7:22.1.1'
    compile 'com.android.support:cardview-v7:22.1.1'
}

Android Studio带我去的DatePickerDialog.java的路径是E:\src\Android\sdk\sources\android-22\android\app\DatePickerDialog.java。与 gradle 设置相结合,让我相信我所看到的所有内容都应该是 API 22...我在这里完全不知所措。有什么想法吗?

谢谢!

最佳答案

这是在 API 版本 21 左右引入的。如果您的 MinSDK 较低,您将无法看到该功能。

但是,我只是通过从头开始创建一个示例项目并将最小/最大 SDK 设置为 22 来测试这一点,但我仍然看不到该方法。这可能是 Android Studio 中的一个错误。

关于java - 无法在我的代码中访问 DatePicker.ValidationCallback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30289297/

相关文章:

java - 是否有更有效的方法将 JTable 中已编辑的单元格内容重置回之前的内容

java - 如何通过单击 JButton 最小化 JFrame

android - 是否可以在 Chrome 自定义选项卡上隐藏 URL 栏

javascript - 如何使用 javascript 获取 MetroUI CSS Datepicker 值

datepicker - 在 Angular 5 的日期选择器 Material 中仅选择年份和月份

javascript - 单击时 Angular Material md-datepicker 抛出错误

java - 重构: Removing flags

java - 使用 Hibernate 标准的嵌套集合

android - 为什么在 LinearLayout 上设置 LayoutDirection 不会立即生效?

android - 无法从 Eclipse 上传文件到设备