Android 时间选择器显示两个时钟?

Android time picker shows two clocks?

我已经根据 android 开发文档实现了 Android 时间选择器,一切正常,但我遇到了一个奇怪的错误。我搜索了很多但没有找到任何东西,所以我在这里问。

这是我的时间选择器:

这是它的代码:

 class TimePickerFragment extends DialogFragment
            implements TimePickerDialog.OnTimeSetListener {

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            // Use the current time as the default values for the picker
            final Calendar c = Calendar.getInstance();
            int hour = c.get(Calendar.HOUR_OF_DAY);
            int minute = c.get(Calendar.MINUTE);

            // Create a new instance of TimePickerDialog and return it
            return new TimePickerDialog(getActivity(), this, hour, minute,
                    DateFormat.is24HourFormat(getActivity()));
        }

        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            // Do something with the time chosen by the user
            if (hourOfDay < 10) {
                startTime.setText("0" + Integer.toString(hourOfDay) + ":" + Integer.toString(minute));
            } else if (minute < 10) {
                startTime.setText(Integer.toString(hourOfDay) + ":0" + Integer.toString(minute));
            } else if (hourOfDay < 10 && minute < 10) {
                startTime.setText("0" + Integer.toString(hourOfDay) + ":0" + Integer.toString(minute));
            } else if (minute == 0) {
                startTime.setText(Integer.toString(hourOfDay) + ":00");
            } else
                startTime.setText(Integer.toString(hourOfDay) + ":" + Integer.toString(minute));
        }
    }

有人知道如何解决这个问题吗?

TimePickerDialog (Context context, 
            int themeResId, 
            TimePickerDialog.OnTimeSetListener listener, 
            int hourOfDay, 
            int minute, 
            boolean is24HourView)

is24HourView :这是 24 小时视图还是 AM/PM.

尝试将此参数设置为false,我想你会得到你想要的。

参考:https://developer.android.com/reference/android/app/TimePickerDialog.html

我在三星设备(在我的例子中是 Galaxy S5 和 S6)上遇到了同样的问题。我发现在此设备上,标题是由系统添加的,要隐藏该标题,您需要做的就是自行将其设置为 null。

TimePickerDialog dialog = new TimePickerDialog(getActivity(), this, hour, minute, false);
dialog.setTitle(null);