private void Awake() { if (_characterManager == null) { _characterManager = FindObjectOfType <CharacterManager>(); } if (_cityAreaManager == null) { _cityAreaManager = FindObjectOfType <CityAreaManager>(); } }
public CityAreaController(ICityAreaService cityAreaService) { _cityAreaManager = new CityAreaManager(cityAreaService); }
public MyListViewPage(string title) { Title = title; myStoreDataList = new List <FamilyStore>(); myWebApiService = new WebApiServices(); myCityAreaManager = new CityAreaManager(); //for CityPicker cityPicker = new Picker { Title = "請輸入城市名稱" }; var CityNames = myCityAreaManager.GetCityList(); foreach (var cn in CityNames) { cityPicker.Items.Add(cn); } ; cityPicker.SelectedIndexChanged += (sender, args) => { cityUserChoose = cityPicker.Items[cityPicker.SelectedIndex]; areaPicker.Items.Clear(); areaPicker.IsEnabled = true; List <string> AreaNames = myCityAreaManager.GetAreaList(cityUserChoose); foreach (var an in AreaNames) { areaPicker.Items.Add(an); } ; }; //for AreaPicker areaPicker = new Picker { Title = "請輸入區域名稱", IsEnabled = false }; areaPicker.SelectedIndexChanged += (sender, args) => { if (areaPicker.SelectedIndex >= 0) { areaUserChoose = areaPicker.Items[areaPicker.SelectedIndex]; searchButton.IsEnabled = true; } }; //for listview var listView = new ListView { IsPullToRefreshEnabled = true, RowHeight = 80, ItemsSource = null, ItemTemplate = new DataTemplate(typeof(MyListViewCell)) }; listView.ItemTapped += (sender, e) => { var baseUrl = "https://www.google.com.tw/maps/place/"; var storeData = e.Item as StoreData; if (storeData != null) { Device.OpenUri(new Uri($"{baseUrl}{storeData.Address}")); } ((ListView)sender).SelectedItem = null; }; //for searchButton searchButton = new Button { Text = "Search" }; searchButton.IsEnabled = false; searchButton.Clicked += async(sender, e) => { var resultData = await myWebApiService.GetDataAsync(cityUserChoose, areaUserChoose); myStoreDataList = Newtonsoft.Json.JsonConvert.DeserializeObject <List <FamilyStore> >(resultData); var newdata = new List <StoreData>(); foreach (var fs in myStoreDataList) { newdata.Add(new StoreData { Name = fs.NAME, Address = fs.addr, Tel = fs.TEL }); } //fresh listView for webapi response listView.ItemsSource = null; listView.ItemsSource = newdata; //disable button until user change "area". searchButton.IsEnabled = false; Debug.WriteLine("Store count:" + myStoreDataList.Count); }; Padding = new Thickness(0, 20, 0, 0); Content = new StackLayout { Orientation = StackOrientation.Vertical, Children = { new Label { HorizontalTextAlignment = TextAlignment.Center, Text = Title, FontSize = 30 }, cityPicker, areaPicker, searchButton, listView } }; }