using System;
|
using Shared;
|
using System.Collections.Generic;
|
namespace HDL_ON.UI.UI2.Intelligence.Automation.LogicView
|
{
|
public class TimeView
|
{
|
/// <summary>
|
/// 主控件
|
/// </summary>
|
public FrameLayout frameLayout = new FrameLayout
|
{
|
Y = Application.GetRealHeight(350),
|
Height = Application.GetRealHeight(297),
|
Width = Application.GetRealWidth(343),
|
X = Application.GetRealWidth(16),
|
BackgroundColor = CSS.CSS_Color.view,
|
Radius =(uint)Application.GetRealHeight(12),
|
};
|
/// <summary>
|
/// 时间控件UIPickerView
|
/// </summary>
|
public UIPickerView mUIPickerView = new UIPickerView
|
{
|
X= Application.GetRealWidth(12),
|
Height = Application.GetRealHeight(297),
|
Width = Application.GetRealWidth(343-12*2),
|
BackgroundColor =CSS.CSS_Color.viewTranslucence,
|
Radius = (uint)Application.GetRealHeight(12),
|
|
};
|
/// <summary>
|
/// 取消Btn
|
/// </summary>
|
public Button btnCancel = new Button
|
{
|
TextID = StringId.cancelSelected,
|
TextSize = TextSize.text14,
|
TextColor = CSS.CSS_Color.textCancelColor,
|
Width = Application.GetRealWidth(52),
|
Height = Application.GetRealHeight(32),
|
Y = Application.GetRealHeight(6),
|
X = Application.GetRealWidth(8),
|
|
};
|
/// <summary>
|
/// 确定Btn
|
/// </summary>
|
public Button btnConfirm = new Button
|
{
|
TextID = StringId.confirmSelected,
|
TextSize = TextSize.text14,
|
TextColor = CSS.CSS_Color.textConfirmColor,
|
Width = Application.GetRealWidth(52),
|
Height = Application.GetRealHeight(32),
|
X = Application.GetRealWidth(283),
|
Y = Application.GetRealHeight(6),
|
};
|
/// <summary>
|
/// 线
|
/// </summary>
|
public Button btnLine = new Button
|
{
|
BackgroundColor = CSS.CSS_Color.viewLine,
|
Width = Application.GetRealWidth(343),
|
Height = 1,
|
Y = Application.GetRealWidth(44),
|
|
};
|
/// <summary>
|
/// 时间View的方法
|
/// </summary>
|
/// <returns></returns>
|
public void FLayoutView(FrameLayout fLayout)
|
{
|
|
fLayout.AddChidren(frameLayout);
|
frameLayout.AddChidren(mUIPickerView);
|
frameLayout.AddChidren(btnCancel);
|
frameLayout.AddChidren(btnConfirm);
|
frameLayout.AddChidren(btnLine);
|
}
|
/// <summary>
|
/// 选中时间的方法
|
/// </summary>
|
/// <param name="fLayout">父控件</param>
|
/// <param name="currState">之前状态值</param>
|
/// <param name="action">返回时间值</param>
|
public void TimePoint(FrameLayout fLayout, string currState, Action<string> action)
|
{
|
//取消点击事件
|
btnCancel.MouseUpEventHandler += (sender, e1) =>
|
{
|
//移除fLayout界面
|
fLayout.RemoveFromParent();
|
};
|
//加载数据界面的设置方法(列表互不联动)
|
mUIPickerView.setNPicker(GethStringList(), GetmStringList(), null);
|
var systemHour = DateTime.Now.Hour; //获取小时
|
var systeMinute = DateTime.Now.Minute;//获取分钟
|
int systemHourIndex = 0;
|
int systeMinuteIndex = 0;
|
for (int i = 0; i < GethIntList().Count; i++)
|
{
|
var currhour = GethIntList()[i];
|
if (systemHour == currhour)
|
{
|
systemHourIndex = i;
|
break;
|
}
|
}
|
for (int i = 0; i < GetmIntList().Count; i++)
|
{
|
var currminute = GetmIntList()[i];
|
if (systeMinute == currminute)
|
{
|
systeMinuteIndex = i;
|
break;
|
}
|
}
|
|
//默认初始选中状态
|
mUIPickerView.setCurrentItems(systemHourIndex, systeMinuteIndex, 0);
|
string currH = "";
|
string currM = "";
|
if (systemHour < 10)
|
{
|
currH = "0" + systemHour.ToString();
|
}
|
else
|
{
|
currH = systemHour.ToString();
|
}
|
if (systeMinute < 10)
|
{
|
currM = "0" + systeMinute.ToString();
|
}
|
else
|
{
|
currM = systeMinute.ToString();
|
}
|
//定义一个局部变量记录选中时间
|
string timepoint = currH + ":" + currM;
|
if (currState != "")
|
{
|
int hIndex = GetValueIndex(currState, 0, 1, GethIntList());
|
int mIndex = GetValueIndex(currState, 1, 0, GetmIntList());
|
//更新初始状态
|
mUIPickerView.setCurrentItems(hIndex, mIndex, 0);
|
timepoint = currState;
|
}
|
|
//选中时间回调方法,时间变化一次回调一次
|
mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) =>
|
{
|
string hour = GethStringList()[index1].Split(' ')[0];
|
string minuet = GetmStringList()[index2].Split(' ')[0];
|
timepoint = hour + ":" + minuet;
|
};
|
//确定点击事件
|
btnConfirm.MouseUpEventHandler += (sender, e3) =>
|
{
|
action(timepoint);
|
//移除fLayout界面
|
fLayout.RemoveFromParent();
|
|
};
|
}
|
/// <summary>
|
/// 获取1-24小时列表
|
/// </summary>
|
/// <returns></returns>
|
public List<string> GethStringList()
|
{
|
//初始化列表
|
var hList = new List<string>();
|
for (int i = 0; i < 24; i++)
|
{
|
if (i < 10)
|
{
|
var a = "0" + i.ToString();
|
//添加数据
|
hList.Add(a + " " + Language.StringByID(StringId.h));
|
}
|
else
|
{
|
//添加数据
|
hList.Add(i.ToString() + " " + Language.StringByID(StringId.h));
|
}
|
|
}
|
return hList;
|
|
|
}
|
/// <summary>
|
/// 获取0-23小时列表
|
/// </summary>
|
/// <returns></returns>
|
public List<string> GethStringList0()
|
{
|
//初始化列表
|
var hList = new List<string>();
|
for (int i = 0; i < 24; i++)
|
{
|
if (i < 10)
|
{
|
var a = "0" + i.ToString();
|
//添加数据
|
hList.Add(a + " " + Language.StringByID(StringId.h));
|
}
|
else
|
{
|
//添加数据
|
hList.Add(i.ToString() + " " + Language.StringByID(StringId.h));
|
}
|
|
}
|
return hList;
|
|
|
}
|
/// <summary>
|
/// 获取60分钟列表
|
/// </summary>
|
/// <returns></returns>
|
public List<string> GetmStringList()
|
{
|
//初始化列表
|
var mList = new List<string>();
|
for (int i = 0; i < 60; i++)
|
{
|
if (i < 10)
|
{
|
var a = "0" + i.ToString();
|
//添加数据
|
mList.Add(a + " " + Language.StringByID(StringId.m));
|
}
|
else
|
{
|
//添加数据
|
mList.Add(i.ToString() + " " + Language.StringByID(StringId.m));
|
}
|
|
}
|
|
return mList;
|
}
|
/// <summary>
|
/// 获取60秒列表
|
/// </summary>
|
/// <returns></returns>
|
public List<string> GetsStringList()
|
{
|
//初始化列表
|
var mList = new List<string>();
|
for (int i = 0; i < 60; i++)
|
{
|
if (i < 10)
|
{
|
var a = "0" + i.ToString();
|
//添加数据
|
mList.Add(a + " " + Language.StringByID(StringId.s));
|
}
|
else
|
{
|
//添加数据
|
mList.Add(i.ToString() + " " + Language.StringByID(StringId.s));
|
}
|
|
}
|
|
return mList;
|
}
|
|
/// <summary>
|
/// 获取023小时列表
|
/// </summary>
|
/// <returns></returns>
|
public List<int> GethIntList()
|
{
|
//初始化列表
|
var hList = new List<int>();
|
for (int i = 0; i < 24; i++)
|
{
|
//添加数据
|
hList.Add(i);
|
}
|
return hList;
|
|
|
}
|
|
/// <summary>
|
/// 获取60分钟列表
|
/// </summary>
|
/// <returns></returns>
|
public List<int> GetmIntList()
|
{
|
//初始化列表
|
var mList = new List<int>();
|
for (int i = 0; i < 60; i++)
|
{
|
//添加数据
|
mList.Add(i);
|
}
|
return mList;
|
}
|
|
/// <summary>
|
/// 获取时间值
|
/// </summary>
|
/// <param name="str">源数据</param>
|
/// <param name="digit">返回源数据数组里面某个值索引</param>
|
/// <param name="startIndex"></param>
|
/// <param name="list"></param>
|
/// <returns></returns>
|
public int GetValueIndex(string str, int digit, int startIndex, List<int> list)
|
{
|
int index = 0;
|
int value = 0;
|
if (str.Contains(":"))
|
{
|
value = int.Parse(str.Split(':')[digit]);
|
}
|
for (int i = startIndex; i < list.Count; i++)
|
{
|
if (value == i)
|
{
|
index = i;
|
break;
|
}
|
}
|
return index;
|
}
|
|
}
|
}
|