正在删除 Android 时间选择器小部件中的 AM/PM

Removing AM/PM in Android Time picker Widget

有什么方法可以删除 Time Picker Widget 中的 AM/PM 吗?

我的应用程序中有这个功能,但它的目的是 select 仅小时和分钟,不包括 AM/PM,我尝试 setIs24HourView(true) 但它使时间成为 24 小时,我只想要12个小时。

TimePicker中似乎没有public方法可以直接隐藏或显示AM/PM选择器。但是,查看源代码将为我们提供 View 的资源 ID 的名称,我们可以通过系统 Resources 获取该名称。然后只需找到 View,并将其可见性设置为 GONE

private void hideAmPmLayout(TimePicker picker) {
    final int id = Resources.getSystem().getIdentifier("ampm_layout", "id", "android");
    final View amPmLayout = picker.findViewById(id);
    if(amPmLayout != null) {
        amPmLayout.setVisibility(View.GONE);
    }
}