Android Back Button奇怪的行为

时间:2015-12-13 14:18:19

标签: android android-activity xamarin

现在我使用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);
        }
    }
}

0 个答案:

没有答案
相关问题