首页 > 解决方案 > 在 Xamarin Android 的 ArrayAdapter 中更新项目的值

问题描述

我有一个表格列表:

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

在 Xamarin Android 应用程序中。

如何将列表的第一项从“George”修改为“Donald”(不使用正确的项目创建新列表)?

就像是:

list[0] = "Donald"

标签: c#androidxamarinxamarin.androidandroid-arrayadapter

解决方案


您需要在更新ListViewNotifyDataSetChanged的 ItemSource 后调用该方法。

Android的文档定义NotifyDataSetChangedin如下

通知附加的观察者基础数据已更改,并且任何反映数据集的视图都应自行刷新。

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 的子类),以便您可以直接设置值。


推荐阅读