使用DialogFragment xamarin android的Timepicker

时间:2016-05-02 08:07:37

标签: android xamarin timepicker android-timepicker timepickerdialog

我在片段类的dialogfragment中打开timepicker。

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。我不想在那里更新。我怎样才能做到这一点? 除此之外还有其他方法可以打开timepicker对话框,我可以试试吗? 我是android的新手。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

为了在时间更改时收到通知,您需要创建TimePickerDialog的子类并覆盖OnTimeChanged方法,该方法在用户更改选择器中的时间时调用。在新子类中添加TimeChanged事件,并从重写的方法触发它。在事件处理程序中,您将能够根据新时间设置对话框标题。