android:TimePickerDialog 阻止用户选择过去的时间,并且可以选择具有新日期的未来时间 [英] android: TimePickerDialog prevent user select past time and can select future time with new date

查看:55
本文介绍了android:TimePickerDialog 阻止用户选择过去的时间,并且可以选择具有新日期的未来时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用此链接Android TimePickerDialog 设置最大时间.

我是安卓新手.在这段代码的帮助下,我无法选择过去的时间,但我们无法选择未来的时间.在 timepickerdialog 模式中选择 12 时,根据第二天而不是过去一天自动更改为上午.

解决方案

试试这个代码:

TimePickerFragment timePickerFragment = new TimePickerFragment();timePickerFragment.setOnTimeSetListener(new OnTimeSetListener() {public void onTimeSet(TimePicker view, int hourOfDay, int minute) {日历日期时间 = Calendar.getInstance();日历 c = Calendar.getInstance();datetime.set(Calendar.HOUR_OF_DAY,hourOfDay);datetime.set(Calendar.MINUTE, 分钟);if (datetime.getTimeInMillis() >= c.getTimeInMillis()) {//它在当前之后int 小时 = hourOfDay % 12;btnPickStartTime.setText(String.format("%02d:%02d %s", 小时 == 0 ? 12 : 小时,分钟,hourOfDay <12 ?上午下午"));} 别的 {//它在当前之前'Toast.makeText(getApplicationContext(), "无效时间", Toast.LENGTH_LONG).show();}}});timePickerFragment.show(getSupportFragmentManager(), "TIME");

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

编辑您需要导入:

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

这是一个很好的示例

I am using this link Android TimePickerDialog set max time.

I am new in android. With the help of this code, I cannot select past time but we cannot select future time. When 12 is selected in timepickerdialog mode change to am automatically according to the next day not past day.

解决方案

try this code:

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");

it will show the timepicker dialog and if user select any time before current time... it will show invalid time..

EDIT You need to import:

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

Here is a Good Example

这篇关于android:TimePickerDialog 阻止用户选择过去的时间,并且可以选择具有新日期的未来时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆