protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.speed_game); // get progress bar ProgressBar pb = FindViewById <ProgressBar>(Resource.Id.progress_loader); // get listview ListView lv = FindViewById <ListView>(Resource.Id.listView_Pictures); // get current name textview TextView tv = FindViewById <TextView>(Resource.Id.textView_currentName); // get model Core.ViewModels.MainViewModel Model = (Core.ViewModels.MainViewModel)ViewModel; // load profiles in background Task.Run(async() => { try { // get profiles Profiles = await Model.GetProfiles(); CurrentProfiles = Model.PickProfiles(Profiles, NUM_PROFILES_PER_GUESS); CurrentProfileName = CurrentProfiles[new Random().Next(0, NUM_PROFILES_PER_GUESS - 1)].FullName; // update listview with profile items RunOnUiThread(new Action(() => { lv.Adapter = new Core.Adapters.NameGameAdapter(this, CurrentProfiles); tv.Text = CurrentProfileName; pb.Visibility = ViewStates.Gone; pb.RefreshDrawableState(); tv.RefreshDrawableState(); })); } catch (Exception) { // display exception message that was thrown from GetProfiles method RunOnUiThread(new Action(() => { // get error box TextView error = FindViewById <TextView>(Resource.Id.tv_error); error.Text = "Oh no! There was a problem loading the profiles."; pb.Visibility = ViewStates.Gone; lv.Visibility = ViewStates.Gone; error.Visibility = ViewStates.Visible; pb.RefreshDrawableState(); lv.RefreshDrawableState(); error.RefreshDrawableState(); })); } }); }
public void OnClick(View v) { // get activity MvxActivity Activity = GetActivity(v); OriginalModeView view = (OriginalModeView)Activity; // get model Core.ViewModels.MainViewModel Model = (Core.ViewModels.MainViewModel)view.ViewModel; // get current name textview TextView tv_currentName = Activity.FindViewById <TextView>(Resource.Id.textView_currentName); if (tv_currentName.Text.Equals(Profile.FullName)) { MainView.CorrectGuesses++; TextView tv = Activity.FindViewById <TextView>(Resource.Id.tv_correct); tv.Text = "Correct: " + MainView.CorrectGuesses; tv.RefreshDrawableState(); view.CurrentProfiles = Model.PickProfiles(view.Profiles, view.CurrentProfiles.Count); view.CurrentProfileName = view.CurrentProfiles[new Random().Next(0, view.CurrentProfiles.Count - 1)].FullName; // update listview with profile items // get listview ListView lv = Activity.FindViewById <ListView>(Resource.Id.listView_Pictures); // get current name textview lv.Adapter = new Core.Adapters.NameGameAdapter(view, view.CurrentProfiles); tv_currentName.Text = view.CurrentProfileName; tv_currentName.RefreshDrawableState(); } else { MainView.IncorrectGuesses++; TextView tv = Activity.FindViewById <TextView>(Resource.Id.tv_incorrect); tv.Text = "Incorrect: " + MainView.IncorrectGuesses; tv.RefreshDrawableState(); if (MainView.IncorrectGuesses >= 3) { tv_currentName.Text = "Oh no, you're out of guesses!"; tv_currentName.RefreshDrawableState(); // get listview ListView lv = Activity.FindViewById <ListView>(Resource.Id.listView_Pictures); lv.Visibility = ViewStates.Gone; lv.RefreshDrawableState(); // create back button LinearLayout lo = Activity.FindViewById <LinearLayout>(Resource.Id.llayout_images); Button back = lo.FindViewById <Button>(Resource.Id.btn_back); back.Click += delegate { // open starting screen view.StartActivityForResult(new Intent(back.Context, typeof(MainView)), 0); view.Finish(); }; back.Visibility = ViewStates.Visible; back.RefreshDrawableState(); return; } ImageView iv = (ImageView)v; iv.SetColorFilter(Android.Graphics.Color.DarkGray, Android.Graphics.PorterDuff.Mode.Multiply); iv.RefreshDrawableState(); iv.SetOnClickListener(null); } }