从 Xamarin 中的 TimePicker 获取选定时间 Android

Get Selected Time from TimePicker in Xamarin Android

既然他们说了 Java 可以做的任何事情,C# 可以做得更好...决定在 Xamarin Android 中设计一个闹钟应用程序,但我似乎无法获得所选时间的价值在 C# 中...一个称为 triggerTime 的变量,当警报时间成熟时应该播放一些音乐或显示警报对话框需要该值... 这是 TimePicker 的 xml...

 <TimePicker
        android:id="@+id/timePicker1"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"/>

这是在 AlarmActivity.cs

中定义时间选择器的 C# 代码
 base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.Alarm);
     TimePicker timePicker2 = this.FindViewById<TimePicker>(Resource.Id.timePicker1);
//Code to getTime that user selects

感谢您的帮助

Xamarin 提供了使用 TimePicker

的完整示例

基本上,您需要实现 IOnTimeSetListener,它有一个 OnTimeSet 方法

public void OnTimeSet(TimePicker view, int hourOfDay, int minute)
{
    // hourOfDate and minute are the user's selected values
}

您可以使用 TimeChanged 事件来获取时间选择器更改的时间。

xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TimePicker
    android:id="@+id/timePicker1"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
    android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/timePicker1"/>
</RelativeLayout>

后面的代码:

  TextView textView = FindViewById<TextView>(Resource.Id.textView1);
        TimePicker timePicker1 = FindViewById<TimePicker>(Resource.Id.timePicker1);
        timePicker1.TimeChanged += delegate
        {
            var h = timePicker1.CurrentHour;
            var m = timePicker1.CurrentMinute;
            textView.Text = h + ":" + m;

        };

截图: