当我在Listview中添加新项目时,先前的值将被删除

时间:2014-10-17 16:42:25

标签: android android-listview xamarin

当我在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();

}

2 个答案:

答案 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等效内容。