コード例 #1
0
ファイル: CityArea.cs プロジェクト: aigoia/goetita
 private void Awake()
 {
     if (_characterManager == null)
     {
         _characterManager = FindObjectOfType <CharacterManager>();
     }
     if (_cityAreaManager == null)
     {
         _cityAreaManager = FindObjectOfType <CityAreaManager>();
     }
 }
コード例 #2
0
 public CityAreaController(ICityAreaService cityAreaService)
 {
     _cityAreaManager = new CityAreaManager(cityAreaService);
 }
コード例 #3
0
        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
                }
            };
        }