public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            _client = new TwitterClient();

            var loading = new UIAlertView("Downloading Tweets", "Please wait...", null, null, null);
            loading.Show();

            var indicator = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge);
            indicator.Center = new System.Drawing.PointF(loading.Bounds.Width / 2, loading.Bounds.Size.Height - 40);
            indicator.StartAnimating();
            loading.AddSubview (indicator);

            _client.GetTweetsForUser ("OReillyMedia", tweets =>
            {
                InvokeOnMainThread(() =>
              	{
                    TableView.Source = new TwitterTableViewSource(tweets);
                    TableView.ReloadData();
                    loading.DismissWithClickedButtonIndex (0, true);
                });
            });

            _client.MentionReceived += (object sender, MentionEventArgs args) =>
            {
                InvokeOnMainThread(() =>
                    new UIAlertView("Mention Received", args.Tweet.Text,
                                    null, "Ok", null).Show());
            };
        }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            SetContentView(Resource.Layout.Twitter);

            var client = new TwitterClient();

            var loading = ProgressDialog.Show(this, "Downloading Tweets", "Please wait...", true);

            client.GetTweetsForUser("OReillyMedia", tweets =>
            {
                RunOnUiThread(() =>
                {
                    var tweetList = FindViewById<ListView>(Resource.Id.Tweets);
                    tweetList.Adapter = new TweetListAdapter(this, tweets);
                    tweetList.ItemClick += (object sender, AdapterView.ItemClickEventArgs args) =>
                    {
                        var selectedTweet = tweets[args.Position];

                        new AlertDialog.Builder(this)
                            .SetTitle("Full Tweet")
                            .SetMessage(selectedTweet.Text)
                            .SetPositiveButton("Ok", delegate { })
                            .Show();
                    };

                    loading.Hide();
                });
            });

            client.MentionReceived += (object sender, MentionEventArgs args) =>
            {
                RunOnUiThread(() =>
                {
                    new AlertDialog.Builder(this)
                        .SetTitle("Mention Received")
                        .SetMessage(args.Tweet.Text)
                        .SetPositiveButton("Ok", delegate { })
                        .Show();
                });
            };
        }