Ejemplo n.º 1
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var vm = new SpeakersModel();

            CustomTableView.RowHeight = 70;
            CustomTableView.RegisterNibForCellReuse(CustomTableViewCell.Nib, nameof(CustomTableViewCell));

            GetSpeakersButton.TouchUpInside += async(sender, e) =>
            {
                // ボタンを利用不可、グルグルを表示にします。
                GetSpeakersButton.Enabled = false;
                SVProgressHUD.Show();

                await vm.GetSpeakersAsync();

                // TableViewのSourceをCustomTableViewSourceでnewします。
                CustomTableView.Source = new CustomTableViewSource(this, vm.Speakers);
                CustomTableView.ReloadData();

                // グルグルを非表示、ボタンを利用可にします。
                SVProgressHUD.Dismiss();
                GetSpeakersButton.Enabled = true;
            };
        }
Ejemplo n.º 2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            var speakers = new SpeakersModel();

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            var listView = FindViewById <ListView>(Resource.Id.speakersListView);
            // CustomAdapterを作成して適用
            var speakersAdapter = new SpeakersListAdapter(this, tableItems);

            listView.Adapter = speakersAdapter;

            var progressBar       = FindViewById <ProgressBar>(Resource.Id.progressBar);
            var getSpeakersButton = FindViewById <Button>(Resource.Id.getSpeakersButton);

            getSpeakersButton.Click += async(object sender, EventArgs e) =>
            {
                // クルクルを表示、ボタンを利用不可にします。
                getSpeakersButton.Enabled = false;
                progressBar.Visibility    = ViewStates.Visible;

                // ModelのGetSpeakersメソッドを実行します。
                await speakers.GetSpeakersAsync();

                tableItems.Clear();
                foreach (var speaker in speakers.Speakers)
                {
                    var image = await this.GetImageBitmapFromUrl(speaker.Avatar);

                    tableItems.Add(new TableItem(speaker.Name, speaker.Title, image));
                }

                // ListAdapterに内容の変更を通知します。
                speakersAdapter.NotifyDataSetChanged();

                // クルクルを非表示、ボタンを利用可にします。
                progressBar.Visibility    = ViewStates.Invisible;
                getSpeakersButton.Enabled = true;
            };
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> Speakers()
        {
            var model = new SpeakersModel
            {
                SpeakersCollections = new List <List <Speaker> >()
            };

            var speakers = _speakerService.Value.GetSpeakers();
            var i        = 0;

            foreach (var speaker in speakers)
            {
                List <Speaker> list;
                if (i == 0)
                {
                    list = new List <Speaker>();
                    model.SpeakersCollections.Add(list);
                }
                else
                {
                    list = model.SpeakersCollections.Last();
                }

                list.Add(speaker);

                if (i == 3)
                {
                    i = 0;
                }
                else
                {
                    i++;
                }
            }

            return(View(model));
        }
Ejemplo n.º 4
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var speakers = new SpeakersModel();

            SpeakersTableView.RowHeight = 70;
            SpeakersTableView.RegisterNibForCellReuse(SpeakersTableViewCell.Nib, nameof(SpeakersTableViewCell));

            GetSpeakersButton.TouchUpInside += async(object sender, EventArgs e) =>
            {
                // クルクルを表示、ボタンを利用不可にします。
                GetSpeakersButton.Enabled = false;
                SVProgressHUD.Show();

                // vmのGetSpeakersメソッドを実行します。
                await speakers.GetSpeakersAsync();

                // Name、Title、UIImageのプロパティを持つTableItemのListにデータを移し替えます。
                // 移し替える前にImageUrlをUIImageに変換して格納します。
                var tableItems = new List <TableItem>();
                foreach (var x in speakers.Speakers)
                {
                    var image = await this.LoadImage(x.Avatar);

                    tableItems.Add(new TableItem(x.Name, x.Title, image));
                }

                // TableViewのSourceをCustomTableViewSourceでnewします。
                SpeakersTableView.Source = new SpeakersTableViewSource(tableItems);
                SpeakersTableView.ReloadData();

                // クルクルを非表示、ボタンを利用可にします。
                SVProgressHUD.Dismiss();
                GetSpeakersButton.Enabled = true;
            };
        }