java无法访问日期选择器。代码中的ValidationCallback
我有一个简单的DatePickerFragment,它扩展了DialogFragment。我想设置一个验证回调,这样如果选择了无效的日期,我就可以防止选择“OK”。我第一次尝试setMaxDate,它会使无效的选项变灰,但仍然允许选择它们并按下OK。所以我希望设置验证回调将是解决方案
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;
}
}
我不明白为什么我不能访问或引用安卓。小装置。日期选择器。ValidationCallback或代码中的任何相关位。如果我点击CTRL+B查看DatePickerDialog,我可以看到它导入并引用这些字段。一切似乎都是公开的。但我甚至无法解决这个问题。怎么了?这是最新Android Studio的全新安装,我的gradle文件如下所示:
dependencies {
// Include local libraries
compile fileTree(dir: 'libs', include: ['*.jar'])
// Android support libraries
compile 'com.安卓.support:support-v4:22.1.1'
compile 'com.安卓.support:support-v13:22.1.1'
compile 'com.安卓.support:appcompat-v7:22.1.1'
compile 'com.安卓.support:recyclerview-v7:22.1.1'
compile 'com.安卓.support:cardview-v7:22.1.1'
}
DatePickerDialog的路径。Android Studio带我去的java是E:\src\Android\sdk\sources\Android-22\Android\app\DatePickerDialog。JAVA再加上gradle的设置,我相信我看到的一切都应该是API 22。。。我完全不知所措。有什么想法吗
谢谢
# 1 楼答案
这是在API版本21左右引入的。如果MinSDK较低,则无法看到该功能
然而,我只是通过从头开始创建一个示例项目来测试这一点,将min/max SDK设置为22,但我仍然无法看到该方法。这可能是Android Studio中的一个bug