using System; using System.Collections.Generic; using Shared.Common; using Shared.R; using ZigBee.Device; namespace Shared.Phone.Device.Logic { public class PublicInterface { /// /// 单选择 /// /// 显示在哪个界面的父控件 /// 显示数据源 /// 标题文本 /// 之前状态文本 /// 返回值 public void SingleSelectionShow(FrameLayout frame, List list, int titleText, string stateText, Action action) { FrameLayout frameLayout = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor, }; frame.AddChidren(frameLayout); CompleteView view = new CompleteView(); view.Btntitle.TextID = titleText; frameLayout.AddChidren(view.Show(list.Count)); UserView.HomePage.Instance.ScrollEnabled = false; view.Btncancel.MouseUpEventHandler += (sender, e) => { UserView.HomePage.Instance.ScrollEnabled = true; //移除fLayout界面 frameLayout.RemoveFromParent(); }; ///定义一个Btn记录选中状态 Button checkIconBtn = new Button { Tag = "unknown", }; Button checkTextBtn = new Button { Tag = "unknown", }; for (int i = 0; i < list.Count; i++) { string str = list[i]; mFunView mFun= new mFunView(); mFun.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor; mFun.titleBtn.SelectedTextColor = ZigbeeColor.Current.LogicBtnSelectedColor; mFun.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160 * i); view.fraView.AddChidren(mFun.Show()); mFun.titleBtn.Text = str; mFun.clickviewBtn.Tag = str;//标记 if (list.Count-1==i) { //改变最后一条的颜色 mFun.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor; } if (stateText == str) { //图标改变 checkIconBtn.Visible = false; mFun.selectedIconBtn.Visible = true; checkIconBtn = mFun.selectedIconBtn; checkIconBtn.Tag = mFun.clickviewBtn.Tag.ToString(); //字体改变 checkTextBtn.IsSelected = false; mFun.titleBtn.IsSelected = true; checkTextBtn = mFun.titleBtn; } //点击事件 mFun.clickviewBtn.MouseUpEventHandler += (sender1, e1) => { //图标改变 checkIconBtn.Visible = false; mFun.selectedIconBtn.Visible = true; checkIconBtn = mFun.selectedIconBtn; checkIconBtn.Tag = mFun.clickviewBtn.Tag.ToString(); //字体改变 checkTextBtn.IsSelected = false; mFun.titleBtn.IsSelected = true; checkTextBtn = mFun.titleBtn; }; } view.Btncomplete.MouseUpEventHandler += (sender1, e1) => { if (checkIconBtn.Tag.ToString() == "unknown") { return; } action(checkIconBtn.Tag.ToString()); UserView.HomePage.Instance.ScrollEnabled = true; //移除fLayout界面 frameLayout.RemoveFromParent(); }; } /// /// 单选择 /// /// 显示在哪个界面的父控件 /// 显示数据源 /// 标题文本 /// 之前状态文本 /// 完成返回值 /// 取消返回值 public void SingleSelectionShow(FrameLayout frame, List list, int titleText, string stateText, Action completeAction, Action cancelAction) { FrameLayout frameLayout = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor, }; frame.AddChidren(frameLayout); CompleteView view = new CompleteView(); view.Btntitle.TextID = titleText; frameLayout.AddChidren(view.Show(list.Count)); UserView.HomePage.Instance.ScrollEnabled = false; EventHandler cancelClick= (sender, e) => { UserView.HomePage.Instance.ScrollEnabled = true; //移除fLayout界面 frameLayout.RemoveFromParent(); cancelAction(); }; view.Btncancel.MouseUpEventHandler += cancelClick; frameLayout.MouseUpEventHandler += cancelClick; ///定义一个Btn记录选中状态 Button checkIconBtn = new Button { Tag = "unknown", }; Button checkTextBtn = new Button { Tag = "unknown", }; for (int i = 0; i < list.Count; i++) { string str = list[i]; mFunView mFun = new mFunView(); mFun.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor; mFun.titleBtn.SelectedTextColor = ZigbeeColor.Current.LogicBtnSelectedColor; mFun.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160 * i); view.fraView.AddChidren(mFun.Show()); mFun.titleBtn.Text = str; mFun.clickviewBtn.Tag = str;//标记 if (list.Count - 1 == i) { //改变最后一条的颜色 mFun.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor; } if (stateText == str) { //图标改变 checkIconBtn.Visible = false; mFun.selectedIconBtn.Visible = true; checkIconBtn = mFun.selectedIconBtn; checkIconBtn.Tag = mFun.clickviewBtn.Tag.ToString(); //字体改变 checkTextBtn.IsSelected = false; mFun.titleBtn.IsSelected = true; checkTextBtn = mFun.titleBtn; } //点击事件 mFun.clickviewBtn.MouseUpEventHandler += (sender1, e1) => { //图标改变 checkIconBtn.Visible = false; mFun.selectedIconBtn.Visible = true; checkIconBtn = mFun.selectedIconBtn; checkIconBtn.Tag = mFun.clickviewBtn.Tag.ToString(); //字体改变 checkTextBtn.IsSelected = false; mFun.titleBtn.IsSelected = true; checkTextBtn = mFun.titleBtn; }; } view.Btncomplete.MouseUpEventHandler += (sender1, e1) => { if (checkIconBtn.Tag.ToString() == "unknown") { return; } completeAction(checkIconBtn.Tag.ToString()); UserView.HomePage.Instance.ScrollEnabled = true; //移除fLayout界面 frameLayout.RemoveFromParent(); }; } /// /// 温湿度方法 /// /// 显示在哪个界面的父控件 /// 符号(%,℃) /// 之前状态(比较符号) /// 之前状态 /// 返回值 public void TemperatureShow1(FrameLayout frame, string tlite,string symbol, string state1, string state2, Action action, Action cancelAction) { FrameLayout frameLayout = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor, }; frame.AddChidren(frameLayout); CompleteView view = new CompleteView(); view.Btntitle.Text= tlite; frameLayout.AddChidren(view.Show(4)); UserView.HomePage.Instance.ScrollEnabled = false; EventHandler cancelClick = (sender, e) => { UserView.HomePage.Instance.ScrollEnabled = true; //移除fLayout界面 frameLayout.RemoveFromParent(); cancelAction(); }; view.Btncancel.MouseUpEventHandler += cancelClick; frameLayout.MouseUpEventHandler += cancelClick; #region 布局View var PickerViewfra = new FrameLayout { Y = Application.GetRealHeight(140), Height = Application.GetRealHeight(640), }; view.fraView.AddChidren(PickerViewfra); var mUIPickerView = new UIPickerView { Height = Application.GetRealHeight(640 - 5), }; PickerViewfra.AddChidren(mUIPickerView); var mList1 = new List { ">", "<", "=", "≥", "≤" }; var mList2 = new List(); var mList3 = new List() { symbol }; for (int i = 1; i <= 100; i++) { mList2.Add(i.ToString()); } mUIPickerView.setNPicker(mList1, mList2, mList3); #endregion //默认=,50 int index1 = 2, index2 = 49; if (state1!="" && state2 != "") { string s = ""; switch (state1) { case "0": { s = ">"; } break; case "1": { s = "="; } break; case "2": { s = "<"; } break; case "6": { s = "≥"; } break; case "7": { s = "≤"; } break; } //查找索引 index1 = mList1.IndexOf(s); //转换温度值/100 string tempValue = (int.Parse(state2) / 100).ToString(); index2 = mList2.IndexOf(tempValue); } ///更新最新状态; mUIPickerView.setCurrentItems(index1, index2, 0); mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) => { //返回索引值 index1 = s1; index2 = s2; }; view.Btncomplete.MouseUpEventHandler += (sender1, e1) => { string relationValueStr = ""; switch (mList1[index1]) { case ">": { relationValueStr = "0"; } break; case "<": { relationValueStr = "2"; } break; case "=": { relationValueStr = "1"; } break; case "≥": { relationValueStr = "6"; } break; case "≤": { relationValueStr = "7"; } break; } ///温度进率转换*100 string tempValueStr = (int.Parse(mList2[index2]) * 100).ToString(); action(relationValueStr, tempValueStr); UserView.HomePage.Instance.ScrollEnabled = true; //移除fLayout界面 frameLayout.RemoveFromParent(); }; } public void TemperatureShow(FrameLayout frameLayout, string symbol, string state1, string state2, Action action) { #region 布局View var PickerViewfra = new FrameLayout { Y = Application.GetRealHeight(140), Height = Application.GetRealHeight(640), }; frameLayout.AddChidren(PickerViewfra); var mUIPickerView = new UIPickerView { Height = Application.GetRealHeight(640 - 5), }; PickerViewfra.AddChidren(mUIPickerView); var mList1 = new List { ">", "<", "=", "≥", "≤" }; var mList2 = new List(); var mList3 = new List() { symbol }; for (int i = 1; i <= 100; i++) { mList2.Add(i.ToString()); } mUIPickerView.setNPicker(mList1, mList2, mList3); #endregion //默认=,50 int index1 = 2, index2 = 49; if (state1 != "" && state2 != "") { string s = ""; switch (state1) { case "0": { s = ">"; } break; case "1": { s = "="; } break; case "2": { s = "<"; } break; case "6": { s = "≥"; } break; case "7": { s = "≤"; } break; } //查找索引 index1 = mList1.IndexOf(s); //转换温度值/100 string tempValue = (int.Parse(state2) / 100).ToString(); index2 = mList2.IndexOf(tempValue); } ///更新最新状态; mUIPickerView.setCurrentItems(index1, index2, 0); mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) => { //返回索引值 index1 = s1; index2 = s2; string relationValueStr = ""; switch (mList1[index1]) { case ">": { relationValueStr = "0"; } break; case "<": { relationValueStr = "2"; } break; case "=": { relationValueStr = "1"; } break; case "≥": { relationValueStr = "6"; } break; case "≤": { relationValueStr = "7"; } break; } ///温度进率转换*100 string tempValueStr = (int.Parse(mList2[index2]) * 100).ToString(); action(relationValueStr, tempValueStr); }; } /// /// 获取界面显示文本列表 /// /// 自己定义自己用 /// public List GetViewList(string isStr) { List list = null; switch (isStr) { case "安防": { list = new List { Language.StringByID(MyInternationalizationString.logicathomegarrison), Language.StringByID(MyInternationalizationString.logicremovehomegarrison), Language.StringByID(MyInternationalizationString.withdrawal), Language.StringByID(MyInternationalizationString.urgentwithdrawal), }; } break; case "时间": { list = new List { Language.StringByID(MyInternationalizationString.immediateexecution), Language.StringByID(MyInternationalizationString.timeframe), }; } break; case "地理围栏": { list = new List { Language.StringByID(MyInternationalizationString.athome), Language.StringByID(MyInternationalizationString.leavehome), }; } break; case "组合条件": { list = new List { Language.StringByID(MyInternationalizationString.Allconditions), Language.StringByID(MyInternationalizationString.anycondition), }; } break; case "开关2": { list = new List { Language.StringByID(MyInternationalizationString.open), Language.StringByID(MyInternationalizationString.close), }; } break; case "开关3": { list = new List { Language.StringByID(MyInternationalizationString.open), Language.StringByID(MyInternationalizationString.close), Language.StringByID(MyInternationalizationString.onoff), }; } break; case "空气质量传感器": { list = new List { Language.StringByID(MyInternationalizationString.kongqizhiliang), Language.StringByID(MyInternationalizationString.pm25), //Language.StringByID(MyInternationalizationString.co2), Language.StringByID(MyInternationalizationString.sensortemperature), Language.StringByID(MyInternationalizationString.sensorhumidity), }; } break; case "空气质量": { list = new List { Language.StringByID(MyInternationalizationString.you), Language.StringByID(MyInternationalizationString.liang), Language.StringByID(MyInternationalizationString.cha), }; } break; case "pm2.5": { list = new List { Language.StringByID(MyInternationalizationString.pmyou), Language.StringByID(MyInternationalizationString.pmliang), Language.StringByID(MyInternationalizationString.pmqingdu), Language.StringByID(MyInternationalizationString.pmzhongdu), }; } break; case "co2": { list = new List { Language.StringByID(MyInternationalizationString.co2qingxin), Language.StringByID(MyInternationalizationString.co2huizhuo), Language.StringByID(MyInternationalizationString.co2queyang), Language.StringByID(MyInternationalizationString.co2yanzhongqueyang), }; } break; } return list; } } }