using System; using Com.Hdl.Widget.Pickerview.View; using Com.Hdl.Widget.Pickerview.Listener; using System.Collections.Generic; using Java.Util; namespace Shared { /// /// UIPickerView /// public class UIPickerView : View { /// /// 当前视图 /// /// The UIPickerView. HDLPickerViewNT mPickerViewNT { get { return AndroidView as HDLPickerViewNT; } set { AndroidView = value; } } /// /// 构造函数 /// public UIPickerView() { mPickerViewNT = new HDLPickerViewNT(Application.Activity); mOnSelectChangeListener = new OnSelectChangeListener(this); mPickerViewNT.SetOptionsSelectChangeListener(mOnSelectChangeListener); } /// /// 设置PickerView 默认选中项 /// public void setCurrentItems(int option1, int option2, int option3) { mPickerViewNT.SetCurrentItems(option1, option2, option3); } /// /// 设置PickerView数据 /// //public void setPicker(List mFirstList, List> mSecondList, List>> mThirdList) //{ // mPickerViewNT.SetPicker(mFirstList, mSecondList, mThirdList); private static string SPLIT_FLAG = ">-<"; //} /// /// 设置PickerView数据 联动效果 /// public void setPicker(List mFirstList, List> mSecondList) { if (mFirstList == null) { return; } if (mFirstList.Count != mSecondList.Count) { return; } var mSpliceList = new List();//拼接后的数组 for (int i = 0; i < mSecondList.Count; i++) { string mDataStr = ""; for (int j = 0; j < mSecondList[i].Count; j++) { mDataStr += mSecondList[i][j] + SPLIT_FLAG; } mSpliceList.Add(mDataStr); } mPickerViewNT.SetPickerString(mFirstList, mSpliceList); //IList> newSecondList = new List>(); //foreach (List mm in mSecondList) //{ // newSecondList.Add(mm); //} //mPickerViewNT.SetPicker(mFirstList, newSecondList); //IDictionary> newSecondListDictionary = new Dictionary>(); ////foreach (List mm in mSecondList) ////{ //// newSecondListDictionary.Add(mFirstList ); ////} //for(int i=0;i< mFirstList.Count;i++) //{ // newSecondListDictionary.Add(mFirstList[i], mSecondList[i]); //} //mPickerViewNT.SetPickerHashMap(mFirstList, newSecondListDictionary); } /// /// 设置PickerView数据 不联动 /// public void setNPicker(List mFirstList, List mSecondList, List mThirdList) { mPickerViewNT.SetNPicker(mFirstList, mSecondList, mThirdList); } /// /// 设置PickerView 选中文字的颜色 /// public void setTextColorCenter(uint mColor , int indexID) { byte r, g, b, a; r = (byte)(mColor / 256 / 256 % 256); g = (byte)(mColor / 256 % 256); b = (byte)(mColor % 256); a = (byte)(mColor / 256 / 256 / 256 % 256); mPickerViewNT.SetTextColorCenter(Android.Graphics.Color.Argb(a, r, g, b), indexID); } public Action OnSelectChangeEvent; /// /// OnProgressChangeListener 继承响应事件 /// OnSelectChangeListener mOnSelectChangeListener; public class OnSelectChangeListener : Java.Lang.Object, IOnOptionsSelectChangeListener { UIPickerView _UIPickerView; public OnSelectChangeListener(UIPickerView view) { _UIPickerView = view; } public void OnOptionsSelectChanged(int selectIndex1, int selectIndex2, int selectIndex3) { _UIPickerView.OnSelectChangeEvent?.Invoke(selectIndex1, selectIndex2, selectIndex3); } } } }