c# - 在 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"
解决方案
您需要在更新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 的子类),以便您可以直接设置值。
推荐阅读
- vb.net - 刚刚通过 WiFi 连接的 MS Access 数据库发生 System.AccessViolationException
- javascript - 我怎样才能拥有一个时刻对象但无法访问任何方法?
- c# - Unity3D:下载多个文件并实现回调
- javascript - 使用谷歌应用脚本 HTML 将文件上传到谷歌驱动器
- android - APK 未使用上传证书签名
- oracle - Oracle APEX 交互式报表有子句
- laravel - Laravel Voyager 属于关系形式显示“正在搜索”
- php - 以纯文本形式查找 JSON
- r - 在更改 geom_bar 顺序时保持一致的颜色?
- c++ - Visual Studio 构建与智能感知警告。有什么区别,为什么 pragma warning(disable) 不删除智能感知警告?