在时间选择器中键入不会触发onTimeSet

时间:2019-07-14 03:59:49

标签: android android-timepicker

我正在使用android中的简单基本TimePickerDialog。当显示选择器时,有时会选择模拟模式,有时会选择数字模式。仅当它在基于不同操作系统和设备的某些设备中显示数字模式时,才会发生此问题。在某些设备中,并非全部都发生此问题。如果我移动数字模式的转盘,请单击“确定”设置时间,一切正常。但是当我写下时间并单击“确定”时,它没有设置时间。但是,如果我写下小时,然后选择分钟部分,则效果很好。我在Huawei Y7,API 24中。它是OS相关的问题还是设备?这是我的代码如下:-

 new TimePickerDialog(context, listener, myCalendar
                        .get(Calendar.HOUR_OF_DAY), myCalendar.get(Calendar.MINUTE),
                        false).show();

1 个答案:

答案 0 :(得分:1)

尝试此操作一旦您可以将其完全设置为时钟模式:

为旋转器模式添加android:timePickerMode = "1"

android:timePickerMode="2"用于时钟模式。

像这样在TimePickerDialog的构造函数中使用此主题

 <style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorAccent">@color/colorPrimary</item>
    <item name="colorControlNormal">@color/colorAccent</item>
    <item name="android:timePickerMode">clock</item>
</style>

注意android:timePickerMode在API 21之后开始工作。

TimePickerDialog timePickerDialog = new TimePickerDialog(DateTimePickerDialogActivity.this, android.R.style.DialogTheme, onTimeSetListener, hour, minute, is24Hour);