更新 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
。
NotifyDataSetChangedin
Android文档的定义如下
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);
我有一个表格列表:
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
。
NotifyDataSetChangedin
Android文档的定义如下
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);