我对ListVIew,Xamarin的更新有疑问。
您好。
他目前正在研究Xamarin。 我现在尝试创建的内容就像是Listview的项目更新。
有一个名为TX 1的ListView项。 当你在这里按TX 1时, TX 1 ---> TX 2 ---> TX 3 ---> TX 1这就是我们召集不同活动的方式。
现在我的代码。
public class MainActivity : Activity
{
ArrayAdapter<string> lstAdapter;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
int _Position = 0;
string[] _Test_ListView_tow = { "TX1", "TX2", "TX3" };
string[] _Set_RD_Data = { _Test_ListView_tow[_Position], "Display" };
ListView _Test_ListView = FindViewById<ListView>(Resource.Id._Test_ListView);
lstAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, _Set_RD_Data);
_Test_ListView.Adapter = lstAdapter;
_Test_ListView.ItemClick += (s, e) =>
{
switch(e.Position)
{
case 0:
if(_Position < 2)
{
_Position++;
_Set_RD_Data[0] = _Test_ListView_tow[_Position];
lstAdapter.NotifyDataSetChanged();
Console.WriteLine("Data : " + _Set_RD_Data[0].ToString());
Toast.MakeText(this, _Set_RD_Data[0] + "Select", ToastLength.Short).Show();
}
else if (_Position == 2)
{
_Position = 0;
_Set_RD_Data[0] = _Test_ListView_tow[_Position];
lstAdapter.NotifyDataSetChanged();
Console.WriteLine("Data : " + _Set_RD_Data[0].ToString());
Toast.MakeText(this, _Set_RD_Data[0] + "Select", ToastLength.Short).Show();
}
break;
}
};
}
}
我们如何做到这一点? 作为Toast的结果,当前的情况改变了内容和数据。 但它并没有改变ListView所说的内容。 请告诉我。
答案 0 :(得分:0)
您可以使用Remove()
和Insert()
来更新商品。
首先,将_Set_RD_Data
表单string[]
的类型更改为List<string>
。然后,您可以调用Remove()
和Insert()
方法来操作适配器中的数据。从适配器中删除_Set_RD_Data[0]
,然后修改_Set_RD_Data[0]
值。最后,将其插入索引为0的适配器。
以下是代码:
public class MainActivity : AppCompatActivity
{
ArrayAdapter<string> lstAdapter;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
int _Position = 0;
string[] _Test_ListView_tow = { "TX1", "TX2", "TX3" };
List<string> _Set_RD_Data = new List<string>() { _Test_ListView_tow[_Position], "Display" };
ListView _Test_ListView = FindViewById<ListView>(Resource.Id._Test_ListView);
lstAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, _Set_RD_Data);
_Test_ListView.Adapter = lstAdapter;
_Test_ListView.ItemClick += (s, e) =>
{
switch (e.Position)
{
case 0:
if (_Position < 2)
{
_Position++;
lstAdapter.Remove(_Set_RD_Data[0]);
_Set_RD_Data[0] = _Test_ListView_tow[_Position];
lstAdapter.Insert(_Set_RD_Data[0], 0);
Toast.MakeText(this, _Set_RD_Data[0] + "Select", ToastLength.Short).Show();
}
else if (_Position == 2)
{
_Position = 0;
lstAdapter.Remove(_Set_RD_Data[0]);
_Set_RD_Data[0] = _Test_ListView_tow[_Position];
lstAdapter.Insert(_Set_RD_Data[0], 0);
Toast.MakeText(this, _Set_RD_Data[0] + "Select", ToastLength.Short).Show();
}
break;
}
};
}
}