C# 正在更新Xamarin Android的ArrayAdapter中项目的值
我有一份表格清单:C# 正在更新Xamarin Android的ArrayAdapter中项目的值,c#,android,xamarin,xamarin.android,android-arrayadapter,C#,Android,Xamarin,Xamarin.android,Android Arrayadapter,我有一份表格清单: var list = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1); list.Add("George"); list.Add("Abraham"); 更新列表视图的ItemSource后,需要调用方法NotifyDataSetChanged Android文档的NotifyDataSetChangedin定义如下 通知附加的
var list = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1);
list.Add("George");
list.Add("Abraham");
更新列表视图的ItemSource后,需要调用方法
NotifyDataSetChanged
Android文档的NotifyDataSetChangedin
定义如下
通知附加的观察者基础数据已更改,任何反映数据集的视图都应刷新自身
更新
可以使用如下所示的字符串列表创建适配器
List<string> ItemsSource = new List<string>() {"George","Abraham" };
ItemsSource.Add("Lucas");
var list = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1,ItemsSource);
选择2
您可以创建自定义适配器(BaseAdapter的子类),以便直接设置值。更新ListView的ItemSource后,需要调用方法
NotifyDataSetChanged
Android文档的NotifyDataSetChangedin
定义如下
通知附加的观察者基础数据已更改,任何反映数据集的视图都应刷新自身
更新
可以使用如下所示的字符串列表创建适配器
List<string> ItemsSource = new List<string>() {"George","Abraham" };
ItemsSource.Add("Lucas");
var list = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1,ItemsSource);
选择2
您可以创建自定义适配器(BaseAdapter的子类),以便直接设置值。我们可以使用适配器的clear方法,然后可以再次添加列表
var list = new List<string> { "George", "Abraham" };
var adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, list);
list[0] = "Donald";
adapter.Clear();
adapter.AddAll(list);
var list=新列表{“乔治”、“亚伯拉罕”};
var adapter=new ArrayAdapter(这个,Android.Resource.Layout.SimpleListItem1,列表);
列表[0]=“唐纳德”;
适配器。清除();
adapter.AddAll(列表);
我们可以使用适配器的清除方法,然后可以再次添加列表
var list = new List<string> { "George", "Abraham" };
var adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, list);
list[0] = "Donald";
adapter.Clear();
adapter.AddAll(list);
var list=新列表{“乔治”、“亚伯拉罕”};
var adapter=new ArrayAdapter(这个,Android.Resource.Layout.SimpleListItem1,列表);
列表[0]=“唐纳德”;
适配器。清除();
adapter.AddAll(列表);
主要问题是列表[0]
未定义。没有为ArrayAdapter定义索引器。很遗憾,这不起作用。更改项目资源
对列表
没有影响。看起来他们有不同的缓冲区。这是可行的,但有一些不好的地方。如果列表中的两个项目相同,您希望更改第二个项目,该怎么办?我认为这个解决方案不适用于这一点。假设列表中的两项都是“George”,并且您希望更改第二项。正如我所说的,您可以使用自定义适配器。让我们来看看。主要问题是list[0]
未定义。没有为ArrayAdapter定义索引器。很遗憾,这不起作用。更改项目资源
对列表
没有影响。看起来他们有不同的缓冲区。这是可行的,但有一些不好的地方。如果列表中的两个项目相同,您希望更改第二个项目,该怎么办?我认为这个解决方案不适用于这一点。假设列表中的两项都是“George”,并且您希望更改第二项。因此,正如我所说的,您可以使用自定义适配器。让我们来看看。
var list = new List<string> { "George", "Abraham" };
var adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, list);
list[0] = "Donald";
adapter.Clear();
adapter.AddAll(list);