protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate (bundle);

            SetContentView (Resource.Layout.Main);
            Button button = FindViewById<Button> (Resource.Id.myButton);
            imageView = FindViewById<SmartImageView> (Resource.Id.image);
            imageView.SetImageUrl ("http://cdn1.xamarin.com/webimages/images/index/icon-cross-platform.png");

            _uploader = new PhotoUploader ();
            _listener = new PhotoListener ();

            _listener.NewPhotosReceived += (sender, urls) =>
            {
                RunOnUiThread(() =>
                              {
                    foreach (var url in urls)
                    {
                        imageView.SetImageUrl(url);
                        var toast = Toast.MakeText(BaseContext,"New Image: "+url.ToString(),ToastLength.Long);
                        toast.Show();
                    }
                });
            };

            _listener.StartListening ();

            button.Click += delegate {
                UploadPicture();
            };
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            NavigationItem.RightBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Add);
            NavigationItem.RightBarButtonItem.Clicked += delegate { UploadPicture(); };

            _uploader = new PhotoUploader();
            _listener = new PhotoListener();

            _listener.NewPhotosReceived += (sender, urls) =>
            {
                InvokeOnMainThread(() =>
                {
                    foreach (var url in urls)
                    {
                        _imageSection.Add(
                            new ImageStringElement(DateTime.Now.ToString(), 
                                                   UIImage.LoadFromData(NSData.FromUrl(new NSUrl(url))))
                        );
                    }
                });
            };

            _listener.StartListening();
        }
        protected override async void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

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

            // Get our button from the layout resource,
            // and attach an event to it
            Button button = FindViewById<Button>(Resource.Id.myButton);

            button.Click += delegate
            {
                var imageIntent = new Intent();
                imageIntent.SetType("image/*");
                imageIntent.SetAction(Intent.ActionGetContent);
                StartActivityForResult(
                    Intent.CreateChooser(imageIntent, "Select photo"), 0);
            };


            _uploader = new PhotoUploader();
            _listener = new PhotoListener();

            _listener.NewPhotosReceived += (sender, urls) =>
            {
                ThreadPool.QueueUserWorkItem(o =>
                {
                    foreach (var url in urls)
                    {
                        /*// Replace this iOS code
                        _imageSection.Add(
                            new ImageStringElement(DateTime.Now.ToString(),
                                                   UIImage.LoadFromData(NSData.FromUrl(new NSUrl(url))))
                        );

                        // With this, but tailored to load from URL and replace ImageView with http://android-er.blogspot.com/2010/06/listview-with-icon.html
                        _imageSection =
                            FindViewById<ImageView>(Resource.Id.myImageView);
                        _imageSection.SetImageURI(data.Data);
                        */

                    }
                });
            };

            await _listener.StartListening();
        }