如何解决在Xamarin Android的ArrayAdapter中更新项目的值 更新选项2
我有以下表格的列表:
var list = new ArrayAdapter<string>(this,Android.Resource.Layout.SimpleListItem1);
list.Add("George");
list.Add("Abraham");
在Xamarin Android应用中。
如何将列表的第一项从“乔治”修改为“唐纳德”(不创建包含正确项的新列表)?
类似的东西:
list[0] = "Donald"
解决方法
您需要在更新 ListView 的ItemSource之后调用方法NotifyDataSetChanged
。
NotifyDataSetChangedin
Android文档的定义如下
通知附加的观察者基础数据已更改,任何反映该数据集的视图都应刷新自身。
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,list);
list[0] = "Donald";
adapter.Clear();
adapter.AddAll(list);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。