TweetAdapter.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Android.App;
  6. using Android.Content;
  7. using Android.OS;
  8. using Android.Runtime;
  9. using Android.Views;
  10. using Android.Widget;
  11. using TwitterSearch.Portable.ViewModels;
  12. namespace TwitterSearch.Droid
  13. {
  14. public class TweetAdapter : BaseAdapter
  15. {
  16. TwitterViewModel viewModel;
  17. Activity context;
  18. public TweetAdapter(Activity context, TwitterViewModel viewModel)
  19. {
  20. this.context = context;
  21. this.viewModel = viewModel;
  22. }
  23. public override int Count
  24. {
  25. get { return viewModel.Tweets.Count; }
  26. }
  27. public override Java.Lang.Object GetItem(int position)
  28. {
  29. return position;
  30. }
  31. public override long GetItemId(int position)
  32. {
  33. return position;
  34. }
  35. public override View GetView(int position, View convertView, ViewGroup parent)
  36. {
  37. var tweet = viewModel.Tweets[position];
  38. var view = convertView;
  39. if (view == null)
  40. {
  41. view = context.LayoutInflater.Inflate(Resource.Layout.tweet, null);
  42. }
  43. var name = view.FindViewById<TextView>(Resource.Id.name);
  44. var time = view.FindViewById<TextView>(Resource.Id.time);
  45. var tweetText = view.FindViewById<TextView>(Resource.Id.tweet);
  46. var photo = view.FindViewById<ImageView>(Resource.Id.photo);
  47. Koush.UrlImageViewHelper.SetUrlDrawable(photo, tweet.Image);
  48. name.Text = tweet.DisplayName;
  49. tweetText.Text = tweet.Text;
  50. time.Text = tweet.Date;
  51. return view;
  52. }
  53. }
  54. }