无法将 addRange() 添加到列表视图 xamarin.android
can't addRange() to listview 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 void AddMoreList(List<TrackModel.Track> tracks)
{
_tracks.AddRange(tracks);
}
public void AddItems(List<TrackModel.Track> tracks)
{
_tracks = tracks;
}
我已经在设备上进行了测试,但在 AddRange 处出现空异常。如果我将 AddMoreList 替换为 AddItems,那么应用程序将 运行.
items = Newtonsoft.Json.JsonConvert.DeserializeObject<TrackModel.RootObject> (result);
TrackAdapter tAdapter = new TrackAdapter (this.Activity);
tAdapter.AddMoreList (items.tracks);
lst.Adapter = tAdapter;
tAdapter.NotifyDataSetChanged ();
你必须先初始化_tracks。
_tracks = new List<Track>();
作为您的适配器的初始贡献者,我建议您按以下方式进行:
public class TrackAdapter:BaseAdapter<TrackModel.Track>
{
LayoutInflater _inflater;
public List<TrackModel.Track> Tracks {get; set;}
public TrackAdapter(Context context, List<TrackModel.Track> tracks)
{
_inflater = LayoutInflater.FromContext(context);
Tracks = tracks;
}
...
}
这样您就可以使用预填充的曲目列表来初始化您的适配器,并将其公开为您可以操作的 属性。
//Initial filled list
TrackAdapter tAdapter = new TrackAdapter (this.Activity, items.tracks);
...
//later in the code where you need to add or remove items
var adapter = lst.Adapter as TrackAdapter;
//add a single track
adapter.Tracks.Add(track);
//add multiple tracks
adapter.Tracks.AddRange(tracks);
//remove a single track
adapter.Tracks.Remove(track);
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 void AddMoreList(List<TrackModel.Track> tracks)
{
_tracks.AddRange(tracks);
}
public void AddItems(List<TrackModel.Track> tracks)
{
_tracks = tracks;
}
我已经在设备上进行了测试,但在 AddRange 处出现空异常。如果我将 AddMoreList 替换为 AddItems,那么应用程序将 运行.
items = Newtonsoft.Json.JsonConvert.DeserializeObject<TrackModel.RootObject> (result);
TrackAdapter tAdapter = new TrackAdapter (this.Activity);
tAdapter.AddMoreList (items.tracks);
lst.Adapter = tAdapter;
tAdapter.NotifyDataSetChanged ();
你必须先初始化_tracks。
_tracks = new List<Track>();
作为您的适配器的初始贡献者,我建议您按以下方式进行:
public class TrackAdapter:BaseAdapter<TrackModel.Track>
{
LayoutInflater _inflater;
public List<TrackModel.Track> Tracks {get; set;}
public TrackAdapter(Context context, List<TrackModel.Track> tracks)
{
_inflater = LayoutInflater.FromContext(context);
Tracks = tracks;
}
...
}
这样您就可以使用预填充的曲目列表来初始化您的适配器,并将其公开为您可以操作的 属性。
//Initial filled list
TrackAdapter tAdapter = new TrackAdapter (this.Activity, items.tracks);
...
//later in the code where you need to add or remove items
var adapter = lst.Adapter as TrackAdapter;
//add a single track
adapter.Tracks.Add(track);
//add multiple tracks
adapter.Tracks.AddRange(tracks);
//remove a single track
adapter.Tracks.Remove(track);