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