java - android:TimePickerDialog 阻止用户选择过去的时间,并可以选择具有新日期的 future 时间

标签 java android android-studio android-fragments android-timepicker

我正在使用此链接Android TimePickerDialog set max time .

我是安卓新手。借助此代码,我无法选择过去的时间,但我们无法选择 future 的时间。当在 timepickerdialog 模式中选择 12 时,将根据第二天而不是过去的一天自动更改为 am。

最佳答案

试试这个代码:

TimePickerFragment timePickerFragment = new TimePickerFragment();
            timePickerFragment.setOnTimeSetListener(new OnTimeSetListener() {
                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                    Calendar datetime = Calendar.getInstance();
                    Calendar c = Calendar.getInstance();
                    datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    datetime.set(Calendar.MINUTE, minute);
                    if (datetime.getTimeInMillis() >= c.getTimeInMillis()) {
                        //it's after current
                         int hour = hourOfDay % 12;
                    btnPickStartTime.setText(String.format("%02d:%02d %s", hour == 0 ? 12 : hour,
                            minute, hourOfDay < 12 ? "am" : "pm"));
                    } else {
                        //it's before current'
                        Toast.makeText(getApplicationContext(), "Invalid Time", Toast.LENGTH_LONG).show();
                    }
                }
            });
            timePickerFragment.show(getSupportFragmentManager(), "TIME");

它将显示timepicker对话框,如果用户选择当前时间之前的任何时间...它将显示无效时间..

编辑 您需要导入:

import android.app.TimePickerDialog;
import android.app.Fragment;
import android.app.DialogFragment;
import java.util.Calendar;
import android.widget.TimePicker;

这是一个好东西Example

关于java - android:TimePickerDialog 阻止用户选择过去的时间,并可以选择具有新日期的 future 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59025707/

相关文章:

java - 在Android中访问ListView复选框

android - 需要特定 Android 权限的 Android API 列表

android - Google Play - 应用程序包的签名 key 错误

android-studio - 无法在 Android Studio 中找到 "Google Sceneform Tools (Beta)"插件

java - 如何在新文本区域设置光标?

java - 为什么我在调用 JasperFillManager 时在 java.lang.Class.isAssignableFrom(Native Method) 处得到 java.lang.NullPointerException?

java - Primefaces selectManyCheckbox

android - 在 Debug模式下设置 minifyEnabled true 后 api 调用无法正常工作

android - 在 android 中使用命名空间制作 SoapRequest 对象

android - 在 whatsapp 贴纸包应用程序中使用相机图像或图库图像作为自定义贴纸