17

我想使用 TimePicker 显示24 小时制而不是12 小时制,而且我不需要 AM/PM 按钮,只想显示 24 小时制。

这可能吗?

我用过setIs24HourView(true),但它不工作。

建议我如何显示 24 小时制?

4

4 回答 4

13

您是否尝试过设置 setIs24HourView?

如果您只是需要以其他异常方式使用 NumberPicker 小部件:

Android 中有一个 NumberPicker 小部件,但它是一个私有 API。 这个人提取了代码,以便您可以将其放入任何项目中。

这是我如何将其用于税率的示例:

替代文字

于 2010-11-10T17:18:33.857 回答
6

我遇到过同样的问题,但通过调用活动解决了setIs24HourViewonCreate

于 2012-11-21T22:03:49.917 回答
2

您必须调用 setIs24HourView 函数并为此发送 true。
当时间选择器处于 24 模式时,AM/PM 将消失。

TimePicker tpHourMin = (TimePicker) findViewById(R.id.timePicker);
tpHourMin.setIs24HourView(true);
于 2014-07-13T01:04:25.590 回答
0

你可以覆盖

public void onTimeChanged (TimePicker view, int hourOfDay, int minute) 
method of TimePickerDialog to completely remove AM/PM:

class MyTimePickerDialog extends TimePickerDialog {
    MyTimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView) {
        super(context, callBack, hourOfDay, minute, is24HourView);
    }
@Override
public void onTimeChanged (TimePicker view, int hourOfDay, int minute) {
    // to prevent the dialog from changing the title which by default contains AM/PM
}
}

这是如何使用它

MyTimePickerDialog dialog = new MyTimePickerDialog(getActivity(), this, hour, minute, 
                        true /*DateFormat.is24HourFormat(getActivity())*/);
dialog.setTitle("Set Time");
于 2013-07-16T21:11:51.620 回答