Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在更新Xamarin Android的ArrayAdapter中项目的值_C#_Android_Xamarin_Xamarin.android_Android Arrayadapter - Fatal编程技术网

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);