作者:宇中尘粒 | 来源:互联网 | 2023-09-05 10:52
DatePickerDiaLog在android4.n的版本中,取消选择日期时,会调用onDateSet,确认选择日期时会调用两次onDateSet(但在高版本中不会有此问题)。且同样使用Hol
DatePickerDiaLog 在android 4.n的版本中,取消选择日期时,会调用onDateSet ,确认选择日期时会调用两次onDateSet(但在高版本中不会有此问题)。且同样使用Holo主题,4.n的版本与高版本的样式不一样,高版本会有取消按钮。故使用DatePick+AlertDialog来实现日期选择功能。
代码如下:
DatePicker date = new DatePicker(OrderPickingActivity.this);
date.setCalendarViewShown(false);
date.init(fromYear, fromMonth-1, fromDay, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
}
});
AlertDialog.Builder mDatePickerDialogBuilder = new AlertDialog.Builder(OrderPickingActivity.this);
mDatePickerDialogBuilder.setView(date);
mDatePickerDialogBuilder.setTitle("请选择日期");
mDatePickerDialogBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//只有点击确定按钮时,才更改时间,并设置在文本中显示
fromYear = date.getYear();
fromMonth = date.getMonth()+1;
fromDay = date.getDayOfMonth();
setDateFrom();
}
});
mDatePickerDialogBuilder.setNegativeButton("取消",null);
mDatePickerDialogBuilder.show();
下面是主题:
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.NoActionBar">
<item name="android:windowContentOverlay">@nullitem><item name="android:tabWidgetStyle">@nullitem>
style>
效果图: