我正在做一个简单的测试,因为我需要了解ListView。我已经做了很多搜索,但是有很多搜索,但所有这些都试图做更多的事情而不仅仅是基础知识。因此,为了理解我已经完成一个简单程序并在下面列出的概念。
一切正常 - 除非我旋转手机。我知道它会破坏Activity,我需要重新创建listview和适配器。 我不明白的是 - 为什么我的字符串列表也被"销毁"。
看看我的例子 - 工作日将在轮换后出现。但点击次数列表不会!! 在我的案例中使用listview的正确方法是什么?我没有尝试复杂的行视图或自定义适配器。我将了解基础知识。 谢谢!
namespace NewListViewTest
{
[Activity(Label = "NewListViewTest", MainLauncher = true)]
public class MainActivity : Activity
{
Button StartScan;
Button StopScan;
TextView Filter;
ListView IBeaconActivities;
List<string> dataList;
ArrayAdapter<string> dataAdapter;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
dataList = new List<string>();
}
protected override void OnStart()
{
base.OnStart();
StartScan = FindViewById<Button>(Resource.Id.startScan);
StartScan.Click += StartScan_Click;
StopScan = FindViewById<Button>(Resource.Id.stopScan);
Filter = FindViewById<TextView>(Resource.Id.filter);
IBeaconActivities = FindViewById<ListView>(Resource.Id.beaconActivities);
dataAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, dataList);
IBeaconActivities.Adapter = dataAdapter;
dataList.Add("Monday");
dataList.Add("Tuesday");
dataList.Add("Wednesday");
dataList.Add("Thursday");
dataList.Add("Friday");
dataList.Add("Saturday");
dataList.Add("Sunday");
DataWasUpdated();
}
public void DataWasUpdated()
{
dataAdapter.Clear();
dataAdapter.AddAll(dataList);
dataAdapter.NotifyDataSetChanged();
}
private void StartScan_Click(object sender, System.EventArgs e)
{
dataList.Add("New item at: " + DateTime.Now.ToString("hh:mm:ss"));
DataWasUpdated();
}
}
}