| | |
| | | |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice |
| | | { |
| | | public class BrandList : FrameLayout |
| | | public class BrandList:FrameLayout |
| | | { |
| | | public BrandList() |
| | | |
| | | public void Show(List<Brand> brandList, string spk) |
| | | { |
| | | Tag = "PirView"; |
| | | } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="list">表示该列表元素A-Z字母筛选显示出来</param> |
| | | public void Show(List<Brand>brandList,List<string> list,string spk) |
| | | { |
| | | |
| | | var frameLayout = new FrameLayout |
| | | var strList = new List<string>(); |
| | | for (int str = 0; str < brandList.Count; str++) |
| | | { |
| | | BackgroundColor = CSS.CSS_Color.viewTop, |
| | | Height = Application.GetRealHeight(112), |
| | | Width = Application.GetRealWidth(375), |
| | | }; |
| | | this.AddChidren(frameLayout); |
| | | |
| | | var topNameBtn = new Button |
| | | { |
| | | TextSize = TextSize.text18, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | Width = Application.GetRealWidth(TextSize.view375 - 60 - 60), |
| | | Height = Application.GetRealHeight(25), |
| | | Y = Application.GetRealHeight(30), |
| | | X = Application.GetRealWidth(60), |
| | | Text = "请选择品牌", |
| | | |
| | | }; |
| | | frameLayout.AddChidren(topNameBtn); |
| | | |
| | | var backBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(12), |
| | | Height = Application.GetRealWidth(20), |
| | | X = Application.GetRealWidth(TextSize.left16), |
| | | Y = Application.GetRealHeight(32), |
| | | UnSelectedImagePath = "LogicIcon/back.png", |
| | | }; |
| | | frameLayout.AddChidren(backBtn); |
| | | var clickBackBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(12+16+20), |
| | | Height = Application.GetRealWidth(20+20), |
| | | Y = Application.GetRealHeight(32), |
| | | }; |
| | | frameLayout.AddChidren(clickBackBtn); |
| | | clickBackBtn.MouseUpEventHandler += (sen, e) => |
| | | { |
| | | this.RemoveFromParent(); |
| | | }; |
| | | |
| | | var editText = new EditText |
| | | { |
| | | Width = Application.GetRealWidth(343), |
| | | Height = Application.GetRealWidth(28), |
| | | X = Application.GetRealWidth(TextSize.left16), |
| | | Y = Application.GetRealHeight(76), |
| | | BackgroundColor = CSS.CSS_Color.view, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | |
| | | }; |
| | | frameLayout.AddChidren(editText); |
| | | |
| | | var fram = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(112), |
| | | Height = Application.GetRealHeight(667 - 112), |
| | | Width = Application.GetRealWidth(375), |
| | | BackgroundColor = CSS.CSS_Color.view, |
| | | }; |
| | | this.AddChidren(fram); |
| | | |
| | | |
| | | if (list == null) |
| | | { |
| | | list = new List<string>(); |
| | | //提取字符串列表 |
| | | string s = brandList[str].brandName; |
| | | strList.Add(s); |
| | | } |
| | | var list1 = GetDateList(list); |
| | | |
| | | var vv = new VerticalScrolViewLayout(); |
| | | fram.AddChidren(vv); |
| | | var listStr = new List<string>(); |
| | | listStr.AddRange(list1); |
| | | editText.TextChangeEventHandler += (view, strView) => |
| | | JLCountrycode.CountryCodeView.Current.ShowSortSelection("选择红外品牌", GetDateList(strList), (countryName) => |
| | | { |
| | | listStr.Clear(); |
| | | for (int i = 0; i < list1.Count; i++) |
| | | |
| | | var brandObj = brandList.Find((c) => c.brandName == countryName); |
| | | if (brandObj == null) |
| | | { |
| | | var s = list1[i]; |
| | | if (s.Contains(strView)) |
| | | { |
| | | listStr.Add(s); |
| | | } |
| | | return; |
| | | } |
| | | RefreshLayout(vv, brandList, listStr,spk); |
| | | |
| | | }; |
| | | #region A-Z |
| | | |
| | | |
| | | var a_zFra = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(46), |
| | | X = Application.GetRealWidth(362 - 6), |
| | | Height = Application.GetRealHeight(351), |
| | | Width = Application.GetRealWidth(10 + 6), |
| | | }; |
| | | fram.AddChidren(a_zFra); |
| | | var list2 = GetList(); |
| | | for (int i = 0; i < list2.Count; i++) |
| | | { |
| | | |
| | | var a_zBtn = new Button |
| | | GetLibraryList(brandObj.id, (libraryList) => |
| | | { |
| | | Padding = new Padding(0, 6, 0, 0), |
| | | Y = Application.GetRealHeight(i * 13), |
| | | Width = Application.GetRealWidth(16), |
| | | Height = Application.GetRealHeight(10), |
| | | Text = list2[i], |
| | | TextSize = TextSize.text10, |
| | | TextColor = CSS.CSS_Color.textConfirmColor, |
| | | Tag = list2[i], |
| | | }; |
| | | a_zFra.AddChidren(a_zBtn); |
| | | Matching matching = new Matching(); |
| | | MainPage.BasePageView.AddChidren(matching); |
| | | matching.Show(brandList, libraryList, spk); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }); |
| | | |
| | | |
| | | a_zBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | |
| | | try |
| | | { |
| | | //找到索引值 |
| | | var index = listStr.IndexOf(a_zBtn.Tag.ToString()); |
| | | if (index != -1) |
| | | { |
| | | vv.ScrollToViewIndex(index); |
| | | } |
| | | else |
| | | { |
| | | if (a_zBtn.Tag.ToString() == "#") |
| | | { |
| | | vv.ScrollToViewIndex(0); |
| | | } |
| | | } |
| | | } |
| | | catch { } |
| | | }; |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | RefreshLayout(vv, brandList, list1,spk); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 更新列表Viev |
| | | /// </summary> |
| | | /// <param name="vv">父控件</param> |
| | | /// <param name="list">显示列表</param> |
| | | private void RefreshLayout(VerticalScrolViewLayout vv, List<Brand> brandList, List<string> list,string spk) |
| | | { |
| | | vv.RemoveAll(); |
| | | foreach (var str in list) |
| | | { |
| | | var rowLayout = new RowLayout { LineColor = CSS.CSS_Color.view }; |
| | | var textName = new Button |
| | | { |
| | | TextSize = TextSize.text16, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | Width = Application.GetRealWidth(300), |
| | | Height = Application.GetRealHeight(22), |
| | | X = Application.GetRealWidth(16), |
| | | Gravity = Gravity.CenterVertical, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = str, |
| | | }; |
| | | var clickBtn = new Button |
| | | { |
| | | Tag = str, |
| | | Width = Application.GetRealWidth(350), |
| | | }; |
| | | |
| | | if (Exist(str)) |
| | | { |
| | | //因为字母没有点击事件 |
| | | rowLayout.Height = Application.GetRealHeight(24); |
| | | rowLayout.BackgroundColor = CSS.CSS_Color.viewTop; |
| | | textName.TextSize = TextSize.text12; |
| | | rowLayout.AddChidren(textName); |
| | | } |
| | | else |
| | | { |
| | | rowLayout.Height = Application.GetRealHeight(44); |
| | | rowLayout.AddChidren(textName); |
| | | rowLayout.AddChidren(clickBtn); |
| | | } |
| | | vv.AddChidren(rowLayout); |
| | | clickBtn.MouseUpEventHandler += (sen, e) => |
| | | { |
| | | var name = clickBtn.Tag.ToString(); |
| | | var brandObj = brandList.Find((c) => c.brandName == name); |
| | | if (brandObj==null) { |
| | | return; |
| | | } |
| | | GetLibraryList(brandObj.id, (libraryList) => |
| | | { |
| | | Matching matching = new Matching(); |
| | | MainPage.BasePageView.AddChidren(matching); |
| | | matching.Show(libraryList, spk); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }); |
| | | |
| | | }; |
| | | |
| | | } |
| | | |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | private void GetLibraryList(string id, Action<List<Library>> actionBrand) |
| | | { |
| | | List<Library> libraryList = new List<Library>(); |
| | | List<Library> libraryList = new List<Library>(); |
| | | PirSend.GetDeviceTypesList(this, (responsePackNew) => |
| | | { |
| | | |
| | |
| | | { |
| | | var jay = jArray[a]; |
| | | var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay); |
| | | var library = Newtonsoft.Json.JsonConvert.DeserializeObject<Library>(str); |
| | | var library = Newtonsoft.Json.JsonConvert.DeserializeObject<Library>(str); |
| | | if (library != null) |
| | | { |
| | | if (libraryList.Count<20) |
| | | if (libraryList.Count < 20) |
| | | { |
| | | libraryList.Add(library); |
| | | } |
| | |
| | | else |
| | | { |
| | | Method method = new Method(); |
| | | method.ErrorShow(responsePackNew,""); |
| | | method.ErrorShow(responsePackNew, ""); |
| | | } |
| | | }, id, "品牌红外码库列表"); |
| | | } |
| | | /// <summary> |
| | | /// 列表是否包含该值(true=包含,false=不包含) |
| | | /// </summary> |
| | | /// <param name="str"></param> |
| | | /// <returns></returns> |
| | | private bool Exist(string str) |
| | | { |
| | | |
| | | if (GetList().Contains(str) || "主流品牌" == str) |
| | | { |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 获取显示列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private List<string> GetDateList(List<string> mList) |
| | | private Dictionary<string, List<string>> GetDateList(List<string> mList) |
| | | { |
| | | var list = new List<string>(); |
| | | Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>(); |
| | | //获取A-Z字母列表 |
| | | var a_zList = GetList(false); |
| | | var a_zList = GetList(); |
| | | //遍历A-Z字母列表 |
| | | for (int i = 0; i < a_zList.Count; i++) |
| | | { |
| | | var zimu = a_zList[i]; |
| | | |
| | | var list = new List<string>(); |
| | | //遍历字符串列表 |
| | | for (int a = 0; a < mList.Count; a++) |
| | | { |
| | |
| | | //判断是否同字母 |
| | | if (zimu == a_z) |
| | | { |
| | | //判断列表是否存在字母 |
| | | if (!list.Contains(zimu)) |
| | | { |
| | | //添加字母 |
| | | list.Add(zimu); |
| | | } |
| | | //添加首字同一个字母的数据 |
| | | //添加数据 |
| | | list.Add(str); |
| | | } |
| | | |
| | | } |
| | | dict.Add(zimu, list); |
| | | } |
| | | return list; |
| | | return dict; |
| | | } |
| | | /// <summary> |
| | | /// 获取A-Z字母列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private List<string> GetList(bool value = true) |
| | | private List<string> GetList() |
| | | { |
| | | var list = new List<string>(); |
| | | if (value) |
| | | { |
| | | list.Add("#"); |
| | | } |
| | | for (int j = 65; j <= 90; j++) |
| | | { |
| | | char c = (char)j; |
| | |
| | | iCnChar = i1 * 256 + i2; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | // iCnChar match the constant |
| | | if ((iCnChar >= 45217) && (iCnChar <= 45252)) |
| | |
| | | } |
| | | else return ("ZZ"); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |