使用C# + Xamarin開發Android 應用 -- Datetime Picker

來源:互聯網
上載者:User
1. axml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:minWidth="25px"    android:minHeight="25px">    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/linearLayout4">        <TextView            android:text="Service Name"            android:layout_width="400px"            android:layout_height="match_parent"            android:id="@+id/lblBdServiceName" />    </LinearLayout>    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/linearLayout1">        <Button            android:text="Select Date"            android:id="@+id/btnBDChooseDate"            android:layout_width="154.5dp"            android:layout_height="match_parent" />        <TextView            android:text=""            android:layout_width="400px"            android:layout_height="match_parent"            android:id="@+id/lblBDDate" />    </LinearLayout>    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/linearLayout2">        <Button            android:text="Select Time"            android:id="@+id/btnBDChooseTime"            android:layout_width="154.5dp"            android:layout_height="match_parent" />        <TextView            android:text=""            android:layout_width="400px"            android:layout_height="match_parent"            android:id="@+id/lblBDTime" />    </LinearLayout>    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/linearLayout3">        <TextView            android:layout_width="154.5dp"            android:layout_height="match_parent"            android:id="@+id/lblEmpty" />        <Button            android:text="Confirm"            android:id="@+id/btnBDConfirm"            android:layout_width="154.5dp"            android:layout_height="match_parent"            android:layout_marginRight="320.8dp" />    </LinearLayout></LinearLayout>

2. Activity.cs

public class BookingDetails : Activity    {        private TextView timeDisplay;        private Button pickTime;        private int hour;        private int minute;        const int TIME_DIALOG_ID = 0;        private TextView dateDisplay;        private Button pickDate;        private DateTime date;        const int DATE_DIALOG_ID = 1;        private DateTime serverDateTime ;        protected override void OnCreate(Bundle bundle)        {            SetContentView(Resource.Layout.BookingDetails);            base.OnCreate(bundle);            try            {                var lblServiceName = FindViewById<TextView>(Resource.Id.lblBdServiceName);                lblServiceName.SetText("Service 1", TextView.BufferType.Normal);                serverDateTime = DateTime.Parse("2015-5-22 15:30:26");                // Create your application here                timeDisplay = FindViewById<TextView>(Resource.Id.lblBDTime);                pickTime = FindViewById<Button>(Resource.Id.btnBDChooseTime);                // Add a click listener to the button                pickTime.Click += (o, e) => ShowDialog(TIME_DIALOG_ID);                hour = serverDateTime.Hour;                minute = serverDateTime.Minute;                UpdateDisplayTime();                // capture our View elements                dateDisplay = FindViewById<TextView>(Resource.Id.lblBDDate);                pickDate = FindViewById<Button>(Resource.Id.btnBDChooseDate);                // add a click event handler to the button                pickDate.Click += delegate { ShowDialog(DATE_DIALOG_ID); };                date = serverDateTime;                UpdateDisplayDate();                var btnCfm = FindViewById<Button>(Resource.Id.btnBDConfirm);                btnCfm.Click += (sender, args) =>                {                    try                    {                        var serviceName = FindViewById<TextView>(Resource.Id.lblBdServiceName).Text;                        var selectDate = FindViewById<TextView>(Resource.Id.lblBDDate).Text;                        var selectTime = FindViewById<TextView>(Resource.Id.lblBDTime).Text;                        var selectedDateTime =                           DateTime.Parse(string.Format("{0} {1}", selectDate, selectTime)).ToString();                        var msg = string.Format("Confirm booking service '{0}' at {1} ?", serviceName, selectedDateTime);                        this.ShowDlgYesNo(msg, "Booking Confirmation",                            (s, arg) =>                            {                                this.ShowAlert("call api book");                                this.GotoActicity<MainActivity>();                            },                            (s, arg) =>                            {                                // do nothing                             });                    }                    catch (Exception ex)                    {                        this.ShowAlert(ex.Message);                    }                                    };            }            catch (Exception ex)            {                this.ShowAlert(ex.Message);            }                   }        private void UpdateDisplayTime()        {            string time = string.Format("{0}:{1}", hour, minute.ToString().PadLeft(2, '0'));            timeDisplay.Text = time;        }        private void UpdateDisplayDate()        {            dateDisplay.Text = date.ToString("d");        }        private void TimePickerCallback(object sender, TimePickerDialog.TimeSetEventArgs e)        {            hour = e.HourOfDay;            minute = e.Minute;            UpdateDisplayTime();        }        void OnDateSet(object sender, DatePickerDialog.DateSetEventArgs e)        {            this.date = e.Date;            UpdateDisplayDate();        }        protected override Dialog OnCreateDialog(int id)        {            if (id == TIME_DIALOG_ID)            {                return new TimePickerDialog(this, TimePickerCallback, hour, minute, false);            }            if (id == DATE_DIALOG_ID)            {                var dlg = new DatePickerDialog(this, OnDateSet, serverDateTime.Year, serverDateTime.Month-1, serverDateTime.Day);                return dlg;            }            return null;        }    }

以上就是使用C# + Xamarin開發Android 應用 -- Datetime Picker的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.