using System; using Android.Content; using Com.Widget.Jlcountrycode; using Com.Widget.Jlcountrycode.Sortselect; using System.Collections.Generic; using Java.Util; namespace JLCountrycode { public class CountryCodeView { /// /// 接口类的返回信息 /// private static CountryCodeView m_Current = null; /// /// 接口类的返回信息 /// public static CountryCodeView Current { get { if (m_Current == null) { m_Current = new CountryCodeView(); } return m_Current; } } /// /// 国家区号选择 /// /// public void Show(Action action) { JLCountryCodeActivity.OnCountryCodeCallback = new OnCountryCodeCallback(action); Shared.Application.Activity.StartActivity(new Intent(Shared.Application.Activity, typeof(JLCountryCodeActivity))); } /// /// 自定义传入字典数据 选择 /// /// /// /// public void ShowSortSelection(string titleStr, Dictionary> dic, Action action) { try { SortSelectionUtils.Instance.OnSortSelectCallback = new OnSSCallback(action); SortSelectionUtils.Instance.SortSelectTitle = titleStr; SortSelectionUtils.Instance.MSortSelectList = ConvertToHashMap(dic); Shared.Application.Activity.StartActivity(new Intent(Shared.Application.Activity, typeof(JLSortSelectionActivity))); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } /// /// Dictionary 转 Android HashMap /// /// /// Dictionary ConvertToHashMap(Dictionary> dict) { Dictionary newDictionary = new Dictionary(); try { foreach (string key in dict.Keys) { var value = dict[key]; var arrayList = new ArrayList(); arrayList.AddAll(value.ToArray()); newDictionary.Add(key, arrayList); } } catch (Exception Ex) { //Logger.LogException(Ex); } return newDictionary; } } /// /// OnCountryCodeCallback /// public class OnCountryCodeCallback : Java.Lang.Object, Com.Widget.Jlcountrycode.Contact.IOnCountryCodeCallback { Action mAction; public OnCountryCodeCallback(Action action) { mAction = action; } public void OnSelectCountryCallback(string countryName, string code) { mAction?.Invoke(countryName, code); } } /// /// OnSortSelectCallback /// public class OnSSCallback : Java.Lang.Object, IOnSortSelectCallback { Action mAction; public OnSSCallback(Action action) { mAction = action; } public void OnSortSelectCallback(string countryName) { mAction?.Invoke(countryName); } } }