更新 Xamarin 的 ArrayAdapter 中的项目值 Android

Updating the value of an item in ArrayAdapter of Xamarin Android

我有一个表格列表:

var list = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1);
list.Add("George");
list.Add("Abraham");

在 Xamarin Android 应用程序中。

如何将列表的第一项从“George”修改为“Donald”(无需创建包含正确项的新列表)?

类似于:

list[0] = "Donald"

您需要在更新 ListView 的 ItemSource 后调用方法 NotifyDataSetChanged

NotifyDataSetChangedinAndroid文档的定义如下

Notifies the attached observers that the underlying data has been changed and any View reflecting the data set should refresh itself.

list[0] = "Donald"      
list.NotifyDataSetChanged();

更新

您可以使用如下字符串列表创建适配器

List<string> ItemsSource = new List<string>() {"George","Abraham" };
ItemsSource.Add("Lucas");
var list = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1,ItemsSource);
var adapter = listView.Adapter as ArrayAdapter;
adapter.Remove(s[0]);
adapter.Insert("Donald",0);
adapter.NotifyDataSetChanged();

选项 2

您可以创建一个自定义适配器(BaseAdapter 的子类),以便您可以直接设置值。

我们可以使用适配器的清除方法,然后再添加列表。

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