带有 DialogFragment xamarin 的时间选择器 android
Timepicker with DialogFragment xamarin android
我正在我的片段 class 的 dialogfragment 中打开时间选择器。
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;
}
}
这是我的听众class
public class OnTimeSetListener : Java.Lang.Object, TimePickerDialog.IOnTimeSetListener
{
public void OnTimeSet(TimePicker view, int hourOfDay, int minute)
{
}
}
现在我想在弹出窗口打开时用户选择新时间后立即更新标题。当我单击 popup.I 上的设置按钮时调用 OnTimeSet 不想在那里更新。我怎样才能做到这一点?
除了我可以尝试的其他方法之外,还有其他方法可以打开时间选择器对话框吗?
我是 android 的新手。感谢任何帮助。
为了在时间更改时得到通知,您需要创建 TimePickerDialog
的子类并覆盖 OnTimeChanged 方法,该方法在用户更改选择器中的时间时调用。在新的子类中添加一个 TimeChanged
事件,并从重写的方法中触发它。在事件处理程序中,您将能够根据新时间设置对话框标题。
我正在我的片段 class 的 dialogfragment 中打开时间选择器。
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;
}
}
这是我的听众class
public class OnTimeSetListener : Java.Lang.Object, TimePickerDialog.IOnTimeSetListener
{
public void OnTimeSet(TimePicker view, int hourOfDay, int minute)
{
}
}
现在我想在弹出窗口打开时用户选择新时间后立即更新标题。当我单击 popup.I 上的设置按钮时调用 OnTimeSet 不想在那里更新。我怎样才能做到这一点? 除了我可以尝试的其他方法之外,还有其他方法可以打开时间选择器对话框吗? 我是 android 的新手。感谢任何帮助。
为了在时间更改时得到通知,您需要创建 TimePickerDialog
的子类并覆盖 OnTimeChanged 方法,该方法在用户更改选择器中的时间时调用。在新的子类中添加一个 TimeChanged
事件,并从重写的方法中触发它。在事件处理程序中,您将能够根据新时间设置对话框标题。