问题描述
我有以下表格的列表:
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);