禁用后退按钮C#Android Xamarin代码没有响应

禁用后退按钮C#Android Xamarin代码没有响应,c#,android,visual-studio,xamarin,C#,Android,Visual Studio,Xamarin,因此,我试图禁用我的应用程序中的后退按钮,似乎我使用的代码不想响应,很难用文字解释,因此我制作了一个gif,以便您可以更清楚地看到和理解,因为我不确定我是否能够用文字解释 我想禁用“Activity2”中的后退按钮,但我一直尝试的代码不想响应后退按钮 我试过这些代码,不知道更多的解决方案,因为我是android开发新手 第一次尝试 public override void OnBackPressed () { base.OnBackPressed (); } 第二次尝

因此,我试图禁用我的应用程序中的后退按钮,似乎我使用的代码不想响应,很难用文字解释,因此我制作了一个gif,以便您可以更清楚地看到和理解,因为我不确定我是否能够用文字解释

我想禁用“Activity2”中的后退按钮,但我一直尝试的代码不想响应后退按钮

我试过这些代码,不知道更多的解决方案,因为我是android开发新手

第一次尝试

public override void OnBackPressed ()
    {
    base.OnBackPressed ();
    }
第二次尝试(两人做了相同的事情)

这里可能有什么问题?

试试这个

protected override bool OnBackButtonPressed()
{
    return true;
}
返回true意味着什么也不会发生。。如果返回false,则仍应执行默认操作(返回)

这是至少在contentpage上执行此操作的方法。。。对活动不确定

也许可以试试这个:

您是否检查过按下后退按钮是否真的进入了您的功能

设置一个断点,如下所示:


然后在调试模式(F5)下启动应用程序。

这段代码将使它工作,确保在运行它之前构建程序并重新启动模拟器(我认为这就是它对我起作用的原因)


我这样做了,效果非常好

 public override void OnBackPressed()
        {
            // This prevents a user from being able to hit the back button and leave the login page.
            return;

            //base.OnBackPressed();
        }
你可以这样试试
步骤1添加
[活动(NoHistory=true)

步骤2添加受保护的覆盖bool OnBackButtonPressed() { 返回true; }

到您的内容页,您想禁用按下的后退按钮。

我没有检查否,坦率地说,因为我不知道如何检查,我假设它通过了调试模式?执行该代码会给我这个错误
OnBackButtonPressed()
适用于Xamarin.FormsYeah对此我很抱歉。我的覆盖方法是针对Xamarin contentpages的。我编辑了我的上述文章,其中包含一些可能会解决您的问题的内容。关于检查是否点击了该函数。您可以在文本区域的左侧按右键设置断点。然后使用debug m启动应用程序Ode我应该在哪里添加“[Activity(NoHistory=true)]”抱歉,我对android开发一无所知,因为我从未使用过Activity。我假设您将当前的[Activity(label=“Activity2”)]编辑到[Activity(label=“Activity”,NoHistory=true)]友好提示:除非您有重要的具体原因,否则不要这样做(与9999例10000例中的情况一样,不要这样做)。禁用“后退”按钮违反直觉,会破坏安卓系统强加的设备使用合同。因此,我建议你重新思考。你会怎么做?我不想从第二个活动返回,我将添加更多问题,因为这基本上是一个问答游戏。嗯,你为什么不希望用户退出活动2?如果我正在玩你的游戏,并且我想返回并选择一个不同的类别,例如,我希望按下“后退”按钮,返回主菜单。是否有任何特定的原因让你不允许?用户如何中止正在进行的测验?总是需要完成测验?当用户按下bac时,我将其更改从任何问题来看,用户都会得到主活动(主屏幕)的提示。我认为在这种情况下,这是最明智的选择,是的,因为你不希望有人支持前面的问题。而且这也是你直觉上预期会发生的事……这正是Jesper Christensen三年前回答的。这对你来说是固定的吗?
protected override void OnBackPressed() 
[Activity ( NoHistory = true )]
public override void OnBackPressed()
        {
            //  base.OnBackPressed ();            /*  Comment this base call to avoid calling Finish()  */
            //  Do nothing
        }
 public override void OnBackPressed()
        {
            // This prevents a user from being able to hit the back button and leave the login page.
            return;

            //base.OnBackPressed();
        }