2016-07-20 5 views
2

Я использую этот код:TimePicker не называют OnTimeChanged в API-21

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"); 
} 

но onTimeChanged не называется только в API 21. Что может быть проблема? Или, по крайней мере, как это сделать по-другому?

Я попытался проходит MyTimePickerDialog от AlertDialog и настройки пользовательского вида с TimePicker как этот setView(viewWithTimePicker), а затем использовать метод timePicker.setOnTimeChanged(this). Он работает в API: 23, 22, 16 (!), Но не в 21 (Android 5.0). Нужна помощь.

ответ

2

У меня был такой же вопрос с Lolipop поэтому я добавил

андроида: timePickerMode = "вертушку" в timePickerMode и это сработало.

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

Попробуйте это.

+0

Да, это работа. Хотел также сделать, но остановил, что на api> = 21 мне нужен режим круга. Как быстрое решение подходит, после того, как я могу найти другой подход, дополняйте ответ. Спасибо! – whalemare

+0

@whalemare Добро пожаловать :) и сообщите мне, когда найдете другой подход. Спасибо. – Nisarg

1

Я думаю, что вы забыли реализующий TimePickerDialog.OnTimeSetListener

public class CustomTimePickerDialog extends TimePickerDialog implements TimePickerDialog.OnTimeSetListener{ 
+0

Мне не нужен этот слушатель. потому что в constuctor я отправляю правильный (не нулевой) экземпляр 'OnTimeSetListener'. И мне не нужно переопределять этот метод. – whalemare

+0

И этот метод из документов: «Вызывается, когда пользователь выполнил настройку нового времени, и диалог закрыт.» – whalemare