【问题标题】:Timepicker with DialogFragment xamarin android带有DialogFragment xamarin android的时间选择器
【发布时间】:2016-05-02 08:07:37
【问题描述】:

我正在片段类的对话框片段中打开时间选择器。

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

【问题讨论】:

    标签: android xamarin timepicker android-timepicker timepickerdialog


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。你能告诉我在我的代码中在哪里使用 TimePickerDialog 的子类吗?我现在明白,重写 OnTimeChanged 方法将解决我的目的,但我仍然无法弄清楚在哪里传递创建的子类的引用。
    • 对话框将不再是TimePickerDialog 的实例,而是CustomTimePickerDialog(您的子类)对象。例如:var dialog = new CustomTimePickerDialog(_activity, _listener, _date.Hour, _date.Minute, true);
    • @user6186610:您将在 OnCreateDialog 中使用它而不是 TimePickerDialog
    • 非常感谢。做到了。
    猜你喜欢
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    相关资源
    最近更新 更多