【问题标题】:TimePicker not call OnTimeChanged in API-21TimePicker 不在 API-21 中调用 OnTimeChanged
【发布时间】:2016-07-20 06:46:16
【问题描述】:

我使用这个代码:

public class CustomTimePickerDialog extends TimePickerDialog {
private static final String TAG = CustomTimePickerDialog.class.getSimpleName();


public CustomTimePickerDialog(Context context, OnTimeSetListener listener, int hourOfDay, int minute, boolean is24HourView, String databaseTimeById) {
    super(context, listener, hourOfDay, minute, is24HourView);
}

@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
    Log.d(TAG, "onTimeChanged");
}

但在 API 21 中,onTimeChanged 不被称为 only。可能是什么问题?或者至少如何以不同的方式做到这一点?

我尝试从AlertDialog 扩展MyTimePickerDialog 并像setView(viewWithTimePicker) 这样使用TimePicker 设置自定义视图,然后使用方法timePicker.setOnTimeChanged(this)。它适用于 API:23、22、16(!),但不适用于 21(Android 5.0)。需要帮助。

【问题讨论】:

    标签: android android-timepicker


    【解决方案1】:

    我对 Lolipop 有同样的问题,所以我添加了

    android:timePickerMode="spinner" 作为 timePickerMode 并且它起作用了。

    <TimePicker
            android:id="@+id/timepick_start"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:timePickerMode="spinner"/>
    

    试试这个。

    【讨论】:

    • 是的,它的工作。也想做,但在 api>=21 上停止了,我需要循环模式。作为一个快速解决方案是合适的,之后,如果我能找到不同的方法,补充答案。谢谢!
    • @whalemare 欢迎 :) 当你发现不同的方法时通知我谢谢。
    【解决方案2】:

    我想你忘了实现TimePickerDialog.OnTimeSetListener

    public class CustomTimePickerDialog extends TimePickerDialog implements TimePickerDialog.OnTimeSetListener{
    

    【讨论】:

    • 我不需要实现这个监听器。因为在构造函数中我发送了OnTimeSetListener 的正确(非空)实例。而且我不需要重写这个方法
    • 这个方法来自文档:Called when the user is done setting a new time and the dialog has closed.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多