Listview目前有10个项目。我有一个按钮名称是“加载更多”。当我点击它时,数据将显示10个项目到列表视图。
clean_dob
LoadMore:
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);
}
如何将loadMoreData中的items.tracks添加到listview哪个listview不会丢失旧数据。
答案 0 :(得分:0)
您需要在Adapter
中的foreach
添加项目:
lst.Adapter.Add(temp);
之后,刷新适配器:
lst.Adapter.NotifyDataSetChanged();