当我在ListView中添加新项目时,它会丢失已存在的值。它似乎只添加了新值。目标是在不丢失现有值的情况下添加新值。我的代码:
List<string> list = new List<string>();
void btnAddItem_Click(object sender, EventArgs e)
{
ArrayAdapter<string> adapter;
string edttxNewItem = FindViewById<EditText>(Resource.Id.newItem).Text;
ListView listItems = FindViewById<ListView>(Resource.Id.ListOfItems);
list.Add(edttxNewItem);
adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, list);
listItems.Adapter = adapter;
listItems.DeferNotifyDataSetChanged();
}
答案 0 :(得分:0)
每次单击按钮时,您都要实例化一个新的arraylist(List list = new List();)。因此,数组中的每个先前值都将被删除
答案 1 :(得分:0)
我对xamarin
不熟悉,但似乎您每次都在btnAddItem_Click
尝试创建listview实例。
首先将listItems
方法中的oncreate
初始化为
listItems = FindViewById<ListView>(Resource.Id.ListOfItems);
并将listItems
定义为类变量。
并在adapter
之外设置btnAddItem_Click
,请在OnCreate
方法中说明。
adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, list);
在btnAddItem_Click
中,只需在edttxNewItem
中添加listItems
,在notifydatasetchanged
中添加xamarin
等效内容。