using System; using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; using Shared; using System.Collections.Generic; using System.Text; namespace HDL_ON.UI.UI2.Intelligence.Automation { public class EmptyClass : FrameLayout { public void Show() { var frameLayout = new FrameLayout { 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); backBtn.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); var list11 = new List { "爱你", "哎呦","埃及","哈弗换壳哈弗", "爱德华多v","俺几个疯了", "拜了", "巴士", "百夫", "百合地理课你打算", "不度老骥伏枥", "比到九点", "车站","测试","此地", "才看见好得快","吃软饭","从看见二十多", "等待机会吧","的客户", "多喝点", "登记哦然后", "打电话", "恩肤霜看就看了", "饿死os","恶魔城","儿科联动", "恩六颗子弹拉拉裤洗澡了","发大学生发发", "真厉害i发多少", "知道你付款了发", "尬酒回复", "改进的话", "天天速度回答", "太好了开车", "减肥的看过","桡出口处那","如果觉得", "很舒服的","吃软饭","从看见二十多", "龙卷风亏大发","去好看", "多喝点", "好浪费好", "打电话"}; var list1 = GetDateList(list11); var vv = new VerticalScrolViewLayout(); fram.AddChidren(vv); editText.TextChangeEventHandler += (view, strView) => { var listStr = new List(); for (int i = 0; i < list1.Count; i++) { var s = list1[i]; if (s.Contains(strView)) { listStr.Add(s); } } RefreshLayout(vv, listStr); }; #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 list = GetList(); for (int i = 0; i < list.Count; i++) { var a_zBtn = new Button { Padding= new Padding(0,6,0,0), Y = Application.GetRealHeight(i * 13), Width = Application.GetRealWidth(16), Height = Application.GetRealHeight(10), Text = list[i], TextSize = TextSize.text10, TextColor = CSS.CSS_Color.textConfirmColor, Tag= list[i], }; a_zFra.AddChidren(a_zBtn); a_zBtn.MouseUpEventHandler += (sender, e) => { //找到索引值 var index = list1.IndexOf(a_zBtn.Tag.ToString()); if (index != -1) { vv.ScrollToViewIndex(index); } else { if (a_zBtn.Tag.ToString() == "#") { vv.ScrollToViewIndex(0); } } }; } #endregion RefreshLayout(vv, list1); } /// /// 更新列表Viev /// /// 父控件 /// 显示列表 private void RefreshLayout(VerticalScrolViewLayout vv, List list) { 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 += (se, e) => { //找到索引值 var index = list.IndexOf(clickBtn.Tag.ToString()); this.RemoveFromParent(); }; } } /// /// 列表是否包含该值(true=包含,false=不包含) /// /// /// private bool Exist(string str) { if (GetList().Contains(str)|| "主流品牌"== str) { return true; } else { return false; } } /// /// 获取显示列表 /// /// private List GetDateList(List mList) { var list = new List(); for (int i = 0; i < mList.Count; i++) { //提取字符串第一位 string str = mList[i].Substring(0, 1); var s = GetCharSpellCode(str); if (!list.Contains(s)) { foreach (var value in GetList(false)) { if (!list.Contains(s)) { //重新排序A-Z list.Add(s); } } } } return RelationshipList(list, mList); } /// /// 重新排序字母与数据关系 /// /// 字母表 /// 显示数据表 /// private List RelationshipList(List mList1, List mList2) { var list = new List(); for (int i = 0; i < mList1.Count; i++) { var zimo = mList1[i]; ///添加字母 list.Add(zimo); for (int j = 0; j < mList2.Count; j++) { //提取字符串第一位 string str = mList2[j].Substring(0, 1); var s = GetCharSpellCode(str); //判断返回字母与当前字母是否相等 if (zimo == s) { ///添加数据 list.Add(mList2[j]); } } } return list; } /// /// 获取A-Z字母列表 /// /// private List GetList(bool value=true) { var list = new List(); if (value) { list.Add("#"); } for (int j = 65; j <= 90; j++) { char c = (char)j; string s = c.ToString(); list.Add(s); } return list; } /// /// 获取汉字首字母 /// /// /// private string GetCharSpellCode(string textValue) { long iCnChar; byte[] ZW = Encoding.GetEncoding("gb2312").GetBytes(textValue); //如果是字母,则直接返回 if (ZW.Length == 1) { return textValue.ToUpper(); } else { // get the array of byte from the single char int i1 = (short)(ZW[0]); int i2 = (short)(ZW[1]); iCnChar = i1 * 256 + i2; } //expresstion //table of the constant list // 'A'; //45217..45252 // 'B'; //45253..45760 // 'C'; //45761..46317 // 'D'; //46318..46825 // 'E'; //46826..47009 // 'F'; //47010..47296 // 'G'; //47297..47613 // 'H'; //47614..48118 // 'J'; //48119..49061 // 'K'; //49062..49323 // 'L'; //49324..49895 // 'M'; //49896..50370 // 'N'; //50371..50613 // 'O'; //50614..50621 // 'P'; //50622..50905 // 'Q'; //50906..51386 // 'R'; //51387..51445 // 'S'; //51446..52217 // 'T'; //52218..52697 //没有U,V // 'W'; //52698..52979 // 'X'; //52980..53640 // 'Y'; //53689..54480 // 'Z'; //54481..55289 // iCnChar match the constant if ((iCnChar >= 45217) && (iCnChar <= 45252)) { return "A"; } else if ((iCnChar >= 45253) && (iCnChar <= 45760)) { return "B"; } else if ((iCnChar >= 45761) && (iCnChar <= 46317)) { return "C"; } else if ((iCnChar >= 46318) && (iCnChar <= 46825)) { return "D"; } else if ((iCnChar >= 46826) && (iCnChar <= 47009)) { return "E"; } else if ((iCnChar >= 47010) && (iCnChar <= 47296)) { return "F"; } else if ((iCnChar >= 47297) && (iCnChar <= 47613)) { return "G"; } else if ((iCnChar >= 47614) && (iCnChar <= 48118)) { return "H"; } else if ((iCnChar >= 48119) && (iCnChar <= 49061)) { return "J"; } else if ((iCnChar >= 49062) && (iCnChar <= 49323)) { return "K"; } else if ((iCnChar >= 49324) && (iCnChar <= 49895)) { return "L"; } else if ((iCnChar >= 49896) && (iCnChar <= 50370)) { return "M"; } else if ((iCnChar >= 50371) && (iCnChar <= 50613)) { return "N"; } else if ((iCnChar >= 50614) && (iCnChar <= 50621)) { return "O"; } else if ((iCnChar >= 50622) && (iCnChar <= 50905)) { return "P"; } else if ((iCnChar >= 50906) && (iCnChar <= 51386)) { return "Q"; } else if ((iCnChar >= 51387) && (iCnChar <= 51445)) { return "R"; } else if ((iCnChar >= 51446) && (iCnChar <= 52217)) { return "S"; } else if ((iCnChar >= 52218) && (iCnChar <= 52697)) { return "T"; } else if ((iCnChar >= 52698) && (iCnChar <= 52979)) { return "W"; } else if ((iCnChar >= 52980) && (iCnChar <= 53640)) { return "X"; } else if ((iCnChar >= 53689) && (iCnChar <= 54480)) { return "Y"; } else if ((iCnChar >= 54481) && (iCnChar <= 55289)) { return "Z"; } else return ("ZZ"); } } }