gpt4 book ai didi

android - 无法获取 DatePicker 选择当前日期,保持上一个日期已启用

转载 作者:搜寻专家 更新时间:2023-11-01 07:46:12 27 4
gpt4 key购买 nike

我正在使用日期选择器 fragment 显示一个日期选择器。我用我之前选择的日期初始化我的日期选择器。

在使用前一个日期加载日期选择器时,我无法从日期选择器中选择当前日期。我仅在 API 级别 21 中遇到此问题。它适用于 API 21 以外的所有 API 级别。

每当我从日期选择器中删除 maxDate() 时,它就会开始运行。但就我而言,我需要禁用 future 日期。

我不明白我的代码有什么问题。

这是我的代码。

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {

public DatePickerFragment() {
}

private String selectedDate = "";
private Interfaces.OnDateSelectedClickListener onDateSelectedClickListener;

public DatePickerFragment(Interfaces.OnDateSelectedClickListener onDateSelectedClickListener, String selectedDate) {
this.onDateSelectedClickListener = onDateSelectedClickListener;
this.selectedDate = selectedDate;

}

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar calendar = Calendar.getInstance();
int year = 0, month = 0, day = 0;

if (StaticUtils.isTextEmpty(selectedDate)) {
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
} else {
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy", Locale.getDefault());
Date date = simpleDateFormat.parse(selectedDate);
calendar.setTimeInMillis(date.getTime());
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
} catch (ParseException e) {
e.printStackTrace();
}
}

DatePickerDialog datePicker;
if (Build.VERSION.SDK_INT < 21) {
datePicker = new DatePickerDialog(getActivity(), AlertDialog.THEME_HOLO_LIGHT, this, year, month, day);
} else {
datePicker = new DatePickerDialog(getActivity(), R.style.datepicker, this, year, month, day);
}

datePicker.getDatePicker().setMaxDate(System.currentTimeMillis()); // disable future dates
datePicker.setTitle("");
datePicker.setCustomTitle(null);
return datePicker;
}

public void onDateSet(DatePicker view, int year, int month, int day) {
if (onDateSelectedClickListener != null) {
onDateSelectedClickListener.onDateSelect(StaticUtils.getDateTimeFromCalendar(day, month, year));
}
}
}

更新:

应用@Lalchand 代码后,如果我已将我的日历加载到之前的日期,我可以选择当前日期,但在 API 级别 21 中它仍然无法正常工作。谁能帮我?或者给我建议改进我的代码。

最佳答案

经过更多研究,我了解到系统不允许我选择当前日期,因为我已经设置了最大日期。所以为了让我的用户选择我更改的当前日期

datePicker.getDatePicker().setMaxDate(System.currentTimeMillis());

datePicker.getDatePicker().setMaxDate(System.currentTimeMillis() + (1000 * 60 * 60));

通过应用上述解决方法,我可以选择当前日期并加载我的日历和之前的日期。

关于android - 无法获取 DatePicker 选择当前日期,保持上一个日期已启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43800935/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com