MainActivity.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using Android.App;
  3. using Android.Content;
  4. using Android.Runtime;
  5. using Android.Views;
  6. using Android.Widget;
  7. using Android.OS;
  8. using Android.Support.V7.App;
  9. using TwitterSearch.Portable.ViewModels;
  10. namespace TwitterSearch.Droid
  11. {
  12. [Activity(Label = "Twitter Search", MainLauncher = true, Icon = "@drawable/icon")]
  13. public class MainActivity : AppCompatActivity
  14. {
  15. TwitterViewModel viewModel = new TwitterViewModel();
  16. protected override void OnCreate(Bundle bundle)
  17. {
  18. base.OnCreate(bundle);
  19. // Set our view from the "main" layout resource
  20. SetContentView(Resource.Layout.Main);
  21. var search = FindViewById<EditText>(Resource.Id.search_text);
  22. var button = FindViewById<Button>(Resource.Id.get_tweets);
  23. var listView = FindViewById<ListView>(Resource.Id.listView);
  24. var progress = FindViewById<ProgressBar>(Resource.Id.progressBar);
  25. progress.Indeterminate = true;
  26. progress.Visibility = ViewStates.Invisible;
  27. button.Click += async (sender, args) =>
  28. {
  29. button.Enabled = false;
  30. progress.Visibility = ViewStates.Visible;
  31. await viewModel.LoadTweetsCommand(search.Text.Trim());
  32. listView.Adapter = new TweetAdapter(this, viewModel);
  33. progress.Visibility = ViewStates.Invisible;
  34. button.Enabled = true;
  35. };
  36. listView.ItemClick += (sender, args) =>
  37. {
  38. viewModel.Speak(args.Position);
  39. };
  40. }
  41. }
  42. }