TimePicker不在API-21中调用OnTimeChanged

时间:2016-07-20 06:46:16

标签: android android-timepicker

我使用此代码:

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未被称为 。可能是什么问题?或者至少如何以不同的方式做到这一点?

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

2 个答案:

答案 0 :(得分:3)

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

android:timePickerMode =“spinner”作为timePickerMode并且工作正常。

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

试试这个。

答案 1 :(得分:1)

我认为你忘了实施TimePickerDialog.OnTimeSetListener

public class CustomTimePickerDialog extends TimePickerDialog implements TimePickerDialog.OnTimeSetListener{