2016-05-03 8 views
1

リストビューには現在10個のアイテムがあります。ボタン名は「もっと読み込み」です。私がそれをクリックすると、データはリストビューに10項目を表示します。リストビューにアイテムを追加するにはxamarin.android

public class TrackAdapter:BaseAdapter<TrackModel.Track> 
    { 
     LayoutInflater _inflater; 
     List<TrackModel.Track> _tracks; 

     public TrackAdapter(Context context, List<TrackModel.Track> tracks) 
     { 
      _inflater=LayoutInflater.FromContext(context); 
      _tracks=tracks; 
     } 

     public override TrackModel.Track this[int index] 
     { 
      get{ return _tracks [index]; } 
     } 


     public override int Count{ 
      get{ return _tracks.Count; } 
     } 

     public override long GetItemId(int position) 
     { 
      return position; 
     } 

     public override View GetView(int position, View convertView,ViewGroup parent) 
     { 
      View view = convertView ?? _inflater.Inflate (Resource.Layout.textViewItems, parent, false); 

      var track = _tracks [position]; 
      var viewHolder = view.Tag as TrackViewHolder; 
      if (viewHolder == null) { 
       viewHolder = new TrackViewHolder(); 
       viewHolder.Title = view.FindViewById<TextView> (Resource.Id.textviewItems); 
       viewHolder.SubTitle = view.FindViewById<TextView> (Resource.Id.textviewSubItem); 
       viewHolder.Image = view.FindViewById<ImageViewAsync> (Resource.Id.image); 
       viewHolder.ImgIcon = view.FindViewById<ImageView> (Resource.Id.imgIconPlay); 
       viewHolder.PlayingCount = view.FindViewById<TextView> (Resource.Id.textviewPlayingCount); 
       view.Tag = viewHolder; 
      } else 
       viewHolder = (TrackViewHolder)view.Tag as TrackViewHolder; 

      viewHolder.Title.Text = track.title; 
      viewHolder.PlayingCount.Text = track.playback_count.ToString(); 
      viewHolder.ImgIcon.SetImageResource (Resource.Drawable.HeadsetFilled); 

      if (!string.IsNullOrEmpty(track.user.full_name)) { 
       viewHolder.SubTitle.Text = track.user.full_name; 
      } else { 
       viewHolder.SubTitle.Text = "Unknown"; 
      } 

      //Android.Net.Uri uri = Android.Net.Uri.Parse ("/Resources/drawable/soundcloud.png"); 
      //Bitmap bitmap=GetBitmapFromUrl(track.artwork_url); 
      if (track.artwork_url != null) { 
       ImageService.LoadUrl(track.artwork_url) 

        .Retry(5, 200) 
        .Into(viewHolder.Image); 
      } else { 
       ImageService.LoadUrl("http://a4.mzstatic.com/us/r30/Purple49/v4/4c/ca/2b/4cca2bb3-8180-5c28-6632-a4d9cde8752c/icon100x100.png") 

        .Retry(5, 200) 
        .Into(viewHolder.Image); 
      } 



      return view; 
     } 




    } 

lst = View.FindViewById<ListView> (Resource.Id.lstHome); 

      var result = await json.GetStringbyJson (...offset=20); 


      if (result != null) 
      { 
       items = Newtonsoft.Json.JsonConvert.DeserializeObject<TrackModel.RootObject> (result); 

       lst.Adapter = new TrackAdapter(Activity, items.tracks); 
      } 

LoadMore:リストビューは、古いデータを失われることはありませんリストビューにloadMoreDataでitems.tracksを追加する方法

public async void loadMoreData(int off) 
     { 
      var result= await json.GetStringbyJson("...offset=30); 
      if (result != null) { 
       items = Newtonsoft.Json.JsonConvert.DeserializeObject<TrackModel.RootObject> (result); 
       foreach (var temp in items.tracks) { 
        //lst.Adapter=; 
       } 
       //lst.Adapter = new TrackAdapter (Activity, items.tracks); 
      } 
     } 

答えて

0

あなたのforeachAdapterに項目を追加する必要があります。その後

lst.Adapter.Add(temp); 

を、アダプタを更新:

lst.Adapter.NotifyDataSetChanged(); 
+0

アダプタは –

+0

lst.Adapter.NotifyDataSetChangedを(追加サポートしていません) ;エラーをサポートして表示しません。 –

+0

私は活動ではない断片を使用します –

関連する問題