gpt4 book ai didi

android - 如何使android时间选择器不允许选择过去的时间

转载 作者:行者123 更新时间:2023-11-29 00:41:17 24 4
gpt4 key购买 nike

嗨,我是 android 的新手,我不想让过去的时间被使用时间选择器选择..我尝试使用以下代码

private TimePicker.OnTimeChangedListener StartTimeChangedListener=new TimePicker.OnTimeChangedListener()
{
public void onTimeChanged(TimePicker view,int selectedHour,int selectedMinute)
{
update(view,selectedHour,selectedMinute);
}
};

而且我不知道如何编写 update(view,selectedHour,selectedMinute) 的代码;谁能帮帮我...

最佳答案

您是否尝试过关注 tutorial on the developers page对于时间选择器?

编辑:

好的,按照教程,我们有了用于显示时间的 TextView 的更新方法:

private void updateDisplay() {
mTimeDisplay.setText(
new StringBuilder()
.append(pad(mHour)).append(":")
.append(pad(mMinute)));
}

private static String pad(int c) {
if (c >= 10)
return String.valueOf(c);
else
return "0" + String.valueOf(c);
}

将为用户选择时间创建的对话框:

@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
return new TimePickerDialog(this,
mTimeSetListener, mHour, mMinute, false);
}
return null;
}

这里是我要添加您想要的限制的地方,即用户设置时间时的回调方法。你需要获取当前的小时和分钟,如果用户选择过去的时间,你不显示他的更改并向他发送 Toast 或其他东西。

使用日历你可以很容易地得到它:

Calendar c = Calendar.getInstance();           

// the callback received when the user "sets" the time in the dialog
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
if (mHour >= Integer.getInteger(c.get(Calendar.HOUR_OF_DAY)) && mMinute >= Integer.getInteger(c.get(Calendar.MINUTE))) {
mHour = hourOfDay;
mMinute = minute;
updateDisplay();
} else
//Display a toast or something to inform the user that he can't pick a past time.
}

现在,如果您希望用户无法在您创建的对话框中选择以前的时间,您必须创建自己的小时选择屏幕,因为 TimePickerDialog 对您可以选择的值没有限制。

希望对您有所帮助!

关于android - 如何使android时间选择器不允许选择过去的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9188427/

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