0

Я запускаю timepicker в диалоговом фрагменте в моем классе фрагментов.Timepicker with DialogFragment xamarin android

var dialog = new TimePickerDialogFragment(_activity, DateTime.Now, new OnTimeSetListener()); 

        dialog.Cancelable = false; 
        dialog.Show(_fg, null); 

Здесь TimePickerDialogFragment расширяет DialogFragment.

public class TimePickerDialogFragment : DialogFragment  
{   
private Activity _activity; 

private DateTime _date; 


private readonly TimePickerDialog.IOnTimeSetListener _listener; 

     public TimePickerDialogFragment(Activity activity, DateTime date, TimePickerDialog.IOnTimeSetListener listener) 
     { 
      _activity = activity; 
      _date = date; 
      _listener = listener; 
     } 

     public override Dialog OnCreateDialog(Bundle savedState) 
    { 
     var dialog = new TimePickerDialog(_activity, _listener, _date.Hour, _date.Minute, true); 
     dialog.SetTitle("Enter Time"+ DateTime.Now.ToString()); 
     return dialog; 
    } 
    } 

Вот мой слушатель класс

public class OnTimeSetListener : Java.Lang.Object, TimePickerDialog.IOnTimeSetListener 

    { 
     public void OnTimeSet(TimePicker view, int hourOfDay, int minute) 
     { 

     } 
    } 

Теперь я хочу, чтобы обновить название, как только пользователь выбирает новое время, пока открыт всплывающее. OnTimeSet вызывается, когда я нажимаю кнопку set во всплывающем окне. Я не хочу там обновляться. Как я могу это достичь? Есть ли другой способ открыть диалог timepicker, кроме того, что я могу попробовать? Я новичок в android. Любая помощь приветствуется.

ответ

0

Для того, чтобы получать уведомление при изменении времени, вам необходимо создать подкласс TimePickerDialog и переопределить метод OnTimeChanged, который вызывается, когда пользователь меняет время на сборщике. Добавьте событие TimeChanged в новый подкласс и активируйте его из переопределенного метода. В обработчике событий вы сможете установить заголовок диалога в зависимости от нового времени.

+0

Благодарим вас за ответ. Можете ли вы сказать мне, где использовать подкласс TimePickerDialog в моем коде? Теперь я понял, что переопределение метода OnTimeChanged решит мою цель, но я не могу понять, куда передать ссылку для созданного подкласса. Диалог – user6186610

+0

больше не будет экземпляром 'TimePickerDialog', а будет объектом' CustomTimePickerDialog' (ваш подкласс). Например: 'диалога вар = новый CustomTimePickerDialog (_activity, _listener, _date.Hour, _date.Minute, правда);' –

+0

@ user6186610: Вы будете использовать его в OnCreateDialog вместо TimePickerDialog – Giorgi

Смежные вопросы