using System; using System.Collections.Generic; using Shared.Common; using ZigBee.Device; namespace Shared.Phone.UserCenter.DoorLock { public class TimeSettignPage : DoorLockCommonLayout, ZigBee.Common.IStatus { #region 上报数据处理 /// /// 处理变化事件 /// /// /// public void DeviceInfoChange(CommonDevice tempDevice, string typeTag) { if (typeTag == "DeviceStatusReport" && tempDevice != null) { if (tempDevice != null) { if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint && tempDevice.DeviceAddr == doorLock.DeviceAddr) { if (tempDevice.DeviceStatusReport != null && tempDevice.DeviceStatusReport.AttriBute != null) { var dataReport = tempDevice.DeviceStatusReport.AttriBute[0]; if (tempDevice.DeviceStatusReport.CluterID == 10 && dataReport.AttributeId == 0) { CurentDoorLockTime = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetLocalTime(dataReport.AttriButeData); Application.RunOnMainThread(() => { waitGetDoorLockTime = DateTime.MaxValue; textDisplayDate.Text = CurentDoorLockTime.Year + Language.StringByID(R.MyInternationalizationString.Year) + CurentDoorLockTime.Month + Language.StringByID(R.MyInternationalizationString.Month) + CurentDoorLockTime.Day + Language.StringByID(R.MyInternationalizationString.Day); if (CurentDoorLockTime.Minute < 10) { textDisplayTime.Text = CurentDoorLockTime.Hour + ":" + "0" + CurentDoorLockTime.Minute; } else { textDisplayTime.Text = CurentDoorLockTime.Hour + ":" + CurentDoorLockTime.Minute; } CommonPage.Loading.Hide(); }); } } } } } } #endregion #region 构造函数 /// /// 构造函数 /// /// public TimeSettignPage(ZigBee.Device.DoorLock doorLock, string timeType) { this.doorLock = doorLock; setTimeType = timeType; BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor; ZigBee.Device.ZbGateway.StatusList.Add(this); } #endregion #region UI内容 #region 变量申明 /// /// 当前门锁 /// ZigBee.Device.DoorLock doorLock; /// /// 设置时间类型 /// string setTimeType = ""; /// /// 当前门锁时间 /// DateTime CurentDoorLockTime; /// /// 显示日期的文本 /// Button textDisplayDate; /// /// 显示时间的文本 /// Button textDisplayTime; /// /// 本地变量“年” /// int curYear = 0; /// /// 本地变量“月” /// int curMonth = 0; /// /// 本地变量“日” /// int curDay = 0; /// /// 本地变量“时” /// int curHour = 0; /// /// 本地变量“分” /// int curMin = 0; /// /// 本地变量“秒” /// int curSec = 0; /// /// 设置时间的Action /// public Action timeSetAction; /// /// 等待获取门锁时的等待时间 /// DateTime waitGetDoorLockTime = DateTime.MaxValue; #endregion /// /// UI显示 /// public void Show() { if (setTimeType == "ValidTime") { this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.ValidTime)); } else if (setTimeType == "InValidTime") { this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.InValidTime)); } else { this.TopFrameLayout(this, Language.StringByID(R.MyInternationalizationString.DoorLockTime)); } EventHandler eHandlerBack = (sender, e) => { this.RemoveFromParent(); }; this.btnBack.MouseUpEventHandler += eHandlerBack; this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; this.MidFrameLayout(this); MidFrameLayoutContent(); } /// /// 中部布局 /// public void MidFrameLayoutContent() { if (setTimeType == "DoorLockTime") { ReadDoorlockTime(); } var zoneFrameLayout = new FrameLayout() { BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, }; this.midFrameLayout.AddChidren(zoneFrameLayout); if (setTimeType == "DoorLockTime") { zoneFrameLayout.Height = Application.GetRealHeight(150) + 1; AddDoorLocksTimeRow(zoneFrameLayout); } else { zoneFrameLayout.Height = Application.GetRealHeight(0); } var midTopFrameLayout = new FrameLayout() { Y = zoneFrameLayout.Bottom, }; this.midFrameLayout.AddChidren(midTopFrameLayout); var dtNow = DateTime.Now; for (int i = 0; i < 2; i++) { #region MidTopFrameLayout UI var rowLayout = new FrameLayout() { Height = Application.GetRealHeight(127 + 23), BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, }; midTopFrameLayout.AddChidren(rowLayout); var btnDateTime = new Button() { Width = Application.GetRealWidth(560), Height = Application.GetRealHeight(58), X = Application.GetRealWidth(58), TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextAlignment = TextAlignment.CenterLeft, TextSize = 12, }; rowLayout.AddChidren(btnDateTime); var textDisplayDateFrameLayout = new FrameLayout() { Width = Application.GetRealWidth(333), Height = Application.GetRealHeight(58), X = Application.GetRealWidth(620), }; rowLayout.AddChidren(textDisplayDateFrameLayout); var btnNextFrameLayout = new FrameLayout() { Width = Application.GetRealWidth(116), Height = Application.GetRealHeight(58), X = Application.GetRealWidth(956), }; rowLayout.AddChidren(btnNextFrameLayout); var btnNext = new Button() { Width = Application.GetRealWidth(58), Height = Application.GetRealHeight(58), UnSelectedImagePath = "Item/RightNext.png", SelectedImagePath = "Item/Down.png", }; btnNextFrameLayout.AddChidren(btnNext); var btnLine = new FrameLayout() { Width = Application.GetRealWidth(965), Height = 1, X = Application.GetRealWidth(58), BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, }; midTopFrameLayout.AddChidren(btnLine); #endregion #region 显示处理 if (i == 0) { btnDateTime.Y = textDisplayDateFrameLayout.Y = btnNextFrameLayout.Y = Application.GetRealHeight(50); btnLine.Y = Application.GetRealHeight(23 + 127); textDisplayDate = new Button() { TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextAlignment = TextAlignment.CenterRight, TextSize = 12, Text = "_" + Language.StringByID(R.MyInternationalizationString.Year) + "_" + Language.StringByID(R.MyInternationalizationString.Month) + "_" + Language.StringByID(R.MyInternationalizationString.Day), }; textDisplayDateFrameLayout.AddChidren(textDisplayDate); if (setTimeType != "DoorLockTime") { btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.Date); if (setTimeType == "ValidTime") { textDisplayDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay + Language.StringByID(R.MyInternationalizationString.Day); } else if (setTimeType == "InValidTime") { textDisplayDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay + Language.StringByID(R.MyInternationalizationString.Day); } } else { btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.CurrentDate); } } else if (i == 1) { rowLayout.Y = 1 + Application.GetRealHeight(150); btnDateTime.Y = textDisplayDateFrameLayout.Y = btnNextFrameLayout.Y = Application.GetRealHeight(50); btnLine.Y = Application.GetRealHeight(40 + 127 + 127); textDisplayTime = new Button() { TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, TextAlignment = TextAlignment.CenterRight, TextSize = 12, Text = "00:00", }; textDisplayDateFrameLayout.AddChidren(textDisplayTime); if (setTimeType != "DoorLockTime") { btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.Time); if (setTimeType == "ValidTime") { if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute < 10) { textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour + ":" + "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute; } else { textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour + ":" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute; } } else if (setTimeType == "InValidTime") { if (Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute < 10) { textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour + ":" + "0" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute; } else { textDisplayTime.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour + ":" + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute; } } } else { btnDateTime.Text = Language.StringByID(R.MyInternationalizationString.CurrentTime); } btnLine.Visible = false; } #endregion #region 事件处理 int curIndex = i; EventHandler hander = (sender, e) => { ClickHandle(curIndex, dtNow); }; rowLayout.MouseDownEventHandler += hander; btnDateTime.MouseDownEventHandler += hander; textDisplayDateFrameLayout.MouseDownEventHandler += hander; btnNextFrameLayout.MouseDownEventHandler += hander; btnNext.MouseDownEventHandler += hander; if (curIndex == 0) { textDisplayDate.MouseDownEventHandler += hander; } else { textDisplayTime.MouseDownEventHandler += hander; } #endregion } btnCancel.MouseUpEventHandler += (sender1, e1) => { this.shadowRadiusFrameLayout.RemoveFromParent(); }; btnFinish.MouseUpEventHandler += (sender1, e1) => { if (setTimeType == "DoorLockTime") { DoorLockTimeFinishHandle(); } }; this.shadowRadiusFrameLayout.MouseUpEventHandler += (sender1, e1) => { this.shadowRadiusFrameLayout.RemoveFromParent(); }; if (setTimeType == "DoorLockTime") { if (CurentDoorLockTime != null && CurentDoorLockTime.Year != 1) { waitGetDoorLockTime = DateTime.MaxValue; CommonPage.Loading.Hide(); } } } #endregion #region 时区 /// /// 添加【门锁时间】行(门锁专用) /// private void AddDoorLocksTimeRow(FrameLayout zoneFrameLayout) { //门锁时间 var rowLayout = new FrameLayout() { Height = Application.GetRealHeight(150), BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, }; zoneFrameLayout.AddChidren(rowLayout); //当前时区 var btnCurZone = new Button() { Width = Application.GetRealWidth(560), Height = Application.GetRealHeight(58), X = Application.GetRealWidth(58), TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, TextAlignment = TextAlignment.CenterLeft, TextSize = 12, Y = Application.GetRealHeight(46), Text = Language.StringByID(R.MyInternationalizationString.CurZone), }; rowLayout.AddChidren(btnCurZone); //哪个时区 var textZone = new Button() { Width = Application.GetRealWidth(333), Height = Application.GetRealHeight(58), X = Application.GetRealWidth(689), Y = Application.GetRealHeight(46), TextAlignment = TextAlignment.CenterRight, TextColor = Shared.Common.ZigbeeColor.Current.XMGray4, TextSize = 14, }; rowLayout.AddChidren(textZone); textZone.Text = zoneData(); textZone.MouseDownEventHandler += (sender, e) => { GetSpecificZoneNowDate(); }; var btnLine = new FrameLayout() { Width = Application.GetRealWidth(965), Height = 1, X = Application.GetRealWidth(58), Y = Application.GetRealHeight(150), BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, }; zoneFrameLayout.AddChidren(btnLine); } /// /// 时区数据 /// /// private string zoneData() { string zoneText = ""; var gwZone = caculateTimeZone(Common.Config.Instance.Home.Longitude); if (gwZone.Contains('+')) { zoneText = Language.StringByID(R.MyInternationalizationString.East); } else { zoneText = Language.StringByID(R.MyInternationalizationString.West); } var num = ToNum(int.Parse(gwZone)); return zoneText += num + Language.StringByID(R.MyInternationalizationString.CurZoneText); } /// /// 获取时区 /// currentLon:"+"为东区,“-”为西区 /// public static String caculateTimeZone(double currentLon) { int timeZone; int shangValue = (int)(currentLon / 15); double yushuValue = Math.Abs(currentLon % 15); if (yushuValue <= 7.5) { timeZone = shangValue; } else { timeZone = shangValue + (currentLon > 0 ? 1 : -1); } return timeZone >= 0 ? "+" + Math.Abs(timeZone) : "-" + Math.Abs(timeZone); } /// /// 转换数字 /// private string ToNum(int x) { var numString = new string[] { "零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二" }; var strChnNamesList = new List(numString); return strChnNamesList[x]; } //如何显示时区所在的时间 public DateTime GetSpecificZoneNowDate(string zoneName = "") { DateTime curZoneDateTime; // 列举所有支持的时区列表 System.Collections.ObjectModel.ReadOnlyCollection lst = TimeZoneInfo.GetSystemTimeZones(); foreach (TimeZoneInfo tzi in lst) { var aa = tzi; var aa1 = tzi.Id; } GetSpecificZoneNowDate1(); zoneName = "Central America Standard Time";//美国 //将本地时间转换为美国标准中部时间 DateTime dt = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now, TimeZoneInfo.Local); curZoneDateTime = TimeZoneInfo.ConvertTimeFromUtc(dt, TimeZoneInfo.FindSystemTimeZoneById(zoneName)); zoneName = "China Standard Time";//中国 //首先将服务器的时间转化为utc时间, var utcdate = DateTime.Now.ToUniversalTime(); //然后转换成指定时区的日期 TimeZoneInfo beiJingZone = TimeZoneInfo.FindSystemTimeZoneById(zoneName); curZoneDateTime = TimeZoneInfo.ConvertTimeFromUtc(utcdate, beiJingZone); return curZoneDateTime; } public void GetSpecificZoneNowDate1() { // Get time in local time zone DateTime thisTime = DateTime.Now; Console.WriteLine("Time in {0} zone: {1}", TimeZoneInfo.Local.IsDaylightSavingTime(thisTime) ? TimeZoneInfo.Local.DaylightName : TimeZoneInfo.Local.StandardName, thisTime); Console.WriteLine(" UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(thisTime, TimeZoneInfo.Local)); // Get Tokyo Standard Time zone TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time"); DateTime tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst); Console.WriteLine("Time in {0} zone: {1}", TimeZoneInfo.Local.IsDaylightSavingTime(tstTime) ? tst.DaylightName : tst.StandardName, tstTime); Console.WriteLine(" UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(tstTime, tst)); } #endregion #region 门锁时间 /// /// 读取门锁时间 /// private void ReadDoorlockTime() { CommonPage.Loading.Start(""); // 只有重新启动时会慢,然后其他时刻都是有值的 new System.Threading.Thread(() => { while (this.Parent != null) { if (DateTime.Now > waitGetDoorLockTime) { Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); CommonPage.Loading.Hide(); }); } //读门锁时间 //等待10秒,没有收到提示超时退出 waitGetDoorLockTime = DateTime.Now.AddSeconds(+5); doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock); System.Threading.Thread.Sleep(5 * 1000); } }) { IsBackground = true }.Start(); } /// /// 门锁时间确认按钮处理 /// private void DoorLockTimeFinishHandle() { System.Threading.Tasks.Task.Run(async () => { try { var curDateTime = new DateTime(curYear, curMonth, curDay, curHour, curMin, curSec); var setTimestamp = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(curDateTime); Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); var rectifyResult = await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp)); if (rectifyResult != null && rectifyResult.setWritableValueResponData != null) { Application.RunOnMainThread(() => { if (rectifyResult.setWritableValueResponData.Status == 0) { doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock); System.Threading.Thread.Sleep(1000); this.shadowRadiusFrameLayout.RemoveFromParent(); } else { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RectifyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); } }); } else { Application.RunOnMainThread(() => { new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); }); } } catch { } finally { Application.RunOnMainThread(() => { CommonPage.Loading.Hide(); }); } }); } #endregion #region 公共事件处理 /// /// 事件处理 /// private void ClickHandle(int curIndex, DateTime dtNow) { this.midFrameLayout.AddChidren(this.shadowRadiusFrameLayout); this.bottomRadiusFrameLayout.RemoveAll(); this.BottomRadiusFrameLayout(this); var mUIPickerView = new UIPickerView() { X = Application.GetRealWidth(0), Height = Application.GetRealHeight(440), }; this.bottomRadiusFrameLayout.AddChidren(mUIPickerView); if (curIndex == 0) { //日期 if (setTimeType != "DoorLockTime") { this.btnBottomTitle.TextID = R.MyInternationalizationString.Date; } else { this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentDate; } mUIPickerView.Y = Application.GetRealWidth(245); var mList1 = new List(); var mList2 = new List(); var mList3 = new List(); var oldMonth = dtNow.Month; int year = dtNow.Year + 1; int days = DateTime.DaysInMonth(dtNow.Year, dtNow.Month); for (int y = dtNow.Year - 9; y < dtNow.Year + 1; y++) { mList1.Add(y.ToString()); } for (int m = 1; m < 13; m++) { if (Language.CurrentLanguage == "Chinese") { mList2.Add(m.ToString() + "月"); } else { mList2.Add(m.ToString()); } } for (int d = 1; d < days + 1; d++) { if (Language.CurrentLanguage == "Chinese") { mList3.Add(d.ToString() + "日"); } else { mList3.Add(d.ToString()); } } if (setTimeType != "DoorLockTime") { mUIPickerView.setNPicker(mList2, mList3, null); mUIPickerView.setCurrentItems(dtNow.Month - 1, dtNow.Day - 1, 0); curMonth = dtNow.Month; curDay = dtNow.Day; if (setTimeType == "ValidTime") { DoorLockCommonInfo.ValidDateYear = dtNow.Year; DoorLockCommonInfo.ValidDateMonth = curMonth; DoorLockCommonInfo.ValidDateDay = curDay; } else { DoorLockCommonInfo.InValidDateYear = dtNow.Year; DoorLockCommonInfo.InValidDateMonth = curMonth; DoorLockCommonInfo.InValidDateDay = curDay; } var btnOk = new Button { X = Application.GetRealWidth(919), Y = Application.GetRealHeight(40), Height = Application.GetRealHeight(58), Width = Application.GetRealWidth(101), Text = Language.StringByID(R.MyInternationalizationString.Complete), TextColor = Shared.Common.ZigbeeColor.Current.XMOrange, TextSize = 14, }; this.bottomRadiusFrameLayout.AddChidren(btnOk); btnOk.MouseUpEventHandler += (sender1, e1) => { if (setTimeType == "ValidTime") { DoorLockCommonInfo.ValidDateYear = dtNow.Year; DoorLockCommonInfo.ValidDateMonth = curMonth; DoorLockCommonInfo.ValidDateDay = curDay; } else { DoorLockCommonInfo.InValidDateYear = dtNow.Year; DoorLockCommonInfo.InValidDateMonth = curMonth; DoorLockCommonInfo.InValidDateDay = curDay; } if (timeSetAction != null) { timeSetAction(); } this.shadowRadiusFrameLayout.RemoveFromParent(); MidFrameLayoutContent(); }; } else { mUIPickerView.setNPicker(mList1, mList2, mList3); mUIPickerView.setCurrentItems(9, dtNow.Month - 1, dtNow.Day - 1); curYear = dtNow.Year; curMonth = dtNow.Month; curDay = dtNow.Day; if (CurentDoorLockTime != null) { curHour = CurentDoorLockTime.Hour; curMin = CurentDoorLockTime.Minute; curSec = CurentDoorLockTime.Second; } else { curHour = dtNow.Hour; curMin = dtNow.Minute; curSec = dtNow.Second; } } Action dAction = () => { if (curMonth != oldMonth) { oldMonth = curMonth; days = DateTime.DaysInMonth(curYear, curMonth); mList3.Clear(); for (int d = 1; d < days + 1; d++) { if (Language.CurrentLanguage == "Chinese") { mList3.Add(d.ToString() + "日"); } else { mList3.Add(d.ToString()); } } if (setTimeType != "DoorLockTime") { mUIPickerView.setNPicker(mList2, mList3, null); mUIPickerView.setCurrentItems(curMonth - 1, curDay - 1, 0); } else { mUIPickerView.setNPicker(mList1, mList2, mList3); mUIPickerView.setCurrentItems(9, curMonth - 1, curDay - 1); } } }; mUIPickerView.OnSelectChangeEvent += (y, m, d) => { if (setTimeType != "DoorLockTime") { curYear = dtNow.Year; curMonth = y + 1; curDay = m + 1; } else { curYear = y + 2009; curMonth = m + 1; curDay = d + 1; } dAction(); }; } if (curIndex == 1) { //时间 if (setTimeType != "DoorLockTime") { this.btnBottomTitle.TextID = R.MyInternationalizationString.Time; } else { this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentTime; } mUIPickerView.Y = Application.GetRealWidth(245); var mList1 = new List(); var mList2 = new List(); for (int h = 0; h < 24; h++) { if (h < 10) { mList1.Add("0" + h.ToString()); } else { mList1.Add(h.ToString()); } } for (int m = 0; m < 60; m++) { if (m < 10) { mList2.Add("0" + m.ToString()); } else { mList2.Add(m.ToString()); } } mUIPickerView.setNPicker(mList1, mList2, null); mUIPickerView.setCurrentItems(dtNow.Hour, dtNow.Minute, 0); if (CurentDoorLockTime != null) { curYear = CurentDoorLockTime.Year; curMonth = CurentDoorLockTime.Month; curDay = CurentDoorLockTime.Day; } else { curYear = dtNow.Year; curMonth = dtNow.Month; curDay = dtNow.Day; } curHour = dtNow.Hour; curMin = dtNow.Minute; curSec = dtNow.Second; mUIPickerView.OnSelectChangeEvent += (h, m, s) => { curHour = h; curMin = m; curSec = dtNow.Second; }; if (setTimeType == "ValidTime") { DoorLockCommonInfo.ValidDateHour = curHour; DoorLockCommonInfo.ValidDateMinute = curMin; DoorLockCommonInfo.ValidDateSecond = curSec; } else { DoorLockCommonInfo.InValidDateHour = curHour; DoorLockCommonInfo.InValidDateMinute = curMin; DoorLockCommonInfo.InValidDateSecond = curSec; } if (setTimeType != "DoorLockTime") { var btnOk = new Button { X = Application.GetRealWidth(919), Y = Application.GetRealHeight(40), Height = Application.GetRealHeight(58), Width = Application.GetRealWidth(101), Text = Language.StringByID(R.MyInternationalizationString.Complete), TextColor = Shared.Common.ZigbeeColor.Current.XMOrange, TextSize = 14, }; this.bottomRadiusFrameLayout.AddChidren(btnOk); btnOk.MouseUpEventHandler += (sender1, e1) => { if (setTimeType == "ValidTime") { DoorLockCommonInfo.ValidDateHour = curHour; DoorLockCommonInfo.ValidDateMinute = curMin; DoorLockCommonInfo.ValidDateSecond = curSec; } else { DoorLockCommonInfo.InValidDateHour = curHour; DoorLockCommonInfo.InValidDateMinute = curMin; DoorLockCommonInfo.InValidDateSecond = curSec; } if (timeSetAction != null) { timeSetAction(); } this.shadowRadiusFrameLayout.RemoveFromParent(); MidFrameLayoutContent(); }; } } } #endregion #region 移除方法 /// /// 重写移除方法 /// public override void RemoveFromParent() { ZbGateway.StatusList.Remove(this); base.RemoveFromParent(); } #endregion } }