【问题标题】:Android TimePicker - How to change to AM/PM when the time gets past 12 in 12h mode?Android TimePicker - 如何在 12 小时模式下时间超过 12 时更改为上午/下午?
【发布时间】:2011-11-16 11:24:38
【问题描述】:

当用户单击 TimePicker 视图的“+”或“-”按钮时,是否可以将时间从 AM 更改为 PM(反之亦然),并且时间已超过 12?

我举个例子 - 如果现在时间是上午 11 点,并且用户单击 TimePicker 的“+”按钮,时间会更改为上午 12 点(应该更改为下午 12 点)。

有没有办法做到这一点?为什么 TimePicker 仍然不这样做?

由于这个问题,我收到了很多来自用户的愤怒回复。

任何帮助都可以, 谢谢

【问题讨论】:

    标签: android view android-widget timepicker android-view


    【解决方案1】:

    您可以使用监听器,跟踪当前时间,然后在 onTimeChanged 方法中您可以检测到翻转并自行更改 AM/PM 设置。

    【讨论】:

    • 如何自己更改上午/下午?如果我这样做,它不会在无限循环中一遍又一遍地调用 onTimeChanged() 方法吗?
    • 您应该可以使用setCurrentHour 将其向前移动。而且我不确定,但我不相信它会触发听众。
    • 确实如此,我刚刚检查过。我想我可以解决一些问题,但这将是一个丑陋的解决方法。
    • 奇数。好吧,我想您可以在调用setCurrentHour 之前将用于跟踪时间的变量设置为最终值,然后如果新时间与您的变量没有不同,则忽略回调。有点骇人听闻,但控件并没有真正按照您想要的方式工作,所以有些骇客是可以预料的。
    【解决方案2】:

    试试setIs24HourView(Boolean is24HourView) 方法?它将删除 AM/PM,但至少时间将处于 24 小时模式。

    【讨论】:

    • 感谢您的回答,但我更愿意让用户在 12h 和 24h 模式之间进行选择(大多数人习惯于 12h 模式)。
    • 很遗憾,我看不到更改 AM/PM 的方法,所以我无法想象如果没有自定义时间选择器,您将如何实现这一目标。编辑:不幸的是,我认为获得您所要求的唯一选择是制作自定义时间选择器。
    猜你喜欢
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多