现在我使用Xamarin开发的示例应用程序有2个页面,一个是打开应用程序时显示给用户的主页,第二个页面用于列出SQLite管理的数据库中所有可用用户。
我的问题是当我在第二页时,它目前显示大约5个用户,我想回到我的主页。为了做到这一点,我按了后退按钮。但它没有立即回到我的主页,它回到我当前的页面(第二个),我一次又一次地按下后退按钮,大约4-5次,然后它又回到了第一页。
为什么?
我认为当我单击后退按钮时,方法Finish()会被调用吗?因此,当前页面将停止并从堆栈中弹出以进入上一个活动。
我在那儿吗?
代码:
using System;
using System.Collections.Generic;
using System.Collections;
using System.Threading;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
namespace UserManager.Droid
{
[Activity(Label = "@string/showUser")]
public class ShowUserActivity : ListActivity
{
UsersQuery query;
List<string> userName;
IEnumerator enumerator;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Create your application here
}
protected override void OnStart()
{
base.OnStart();
query = new UsersQuery();
userName = new List<string>();
enumerator = query.GetAllUsers().GetEnumerator();
while (enumerator.MoveNext())
{
userName.Add(((UsersDB)enumerator.Current).Name);
}
query.Dispose();
}
protected override void OnResume()
{
base.OnResume();
this.ListAdapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, userName);
}
protected override void OnListItemClick(ListView l, View v, int position, long id)
{
var intent = new Intent(this, typeof (UserInformationActivity));
string name = (string) l.GetItemAtPosition(position);
int userID = query.GetUser(name).Id;
intent.PutExtra("userID", userID);
StartActivity(intent);
}
}
}