Android重写onBackPressed()

Jil*_*rta 57 android overriding event-handling android-intent

是否可以仅为一个活动覆盖onBackPressed()?

在后退按钮上单击我想调用特定活动的对话框,但在所有其他活动中,我希望它在之前工作(转到上一个活动)...

谢谢你的提前.

EDITED

谢谢你们所有的人,我已经拥有了你告诉我的所有内容,但我的问题是,当我点击另一个活动上的后退按钮时,我会去我之前的活动(那里我有后退按钮Overriden)和我认为它不起作用,我认为它在整个应用程序中覆盖onBackPressed(),现在我得到了它:D

cod*_*gic 136

是.只有覆盖它在一个Activity

@Override
public void onBackPressed()
{
     // code here to show dialog
     super.onBackPressed();  // optional depending on your needs
}
Run Code Online (Sandbox Code Playgroud)

不要将此代码放在任何其他代码中 Activity

  • 上面的代码如何在片段中工作?这有解决办法吗 (3认同)

小智 41

onBackPressed()按照codeMagic的示例覆盖方法,super.onBackPressed();如果不希望执行默认操作(完成当前活动),则删除调用.

  • +1用于解释super.onBackPressed()的作用 (21认同)

Row*_*rry 6

OnBackPressed 已弃用。

Kotlin 解决方案在这里:

onBackPressedDispatcher.addCallback(object: OnBackPressedCallback(true) {
            /* override back pressing */
            override fun handleOnBackPressed() {
                //Your code here
            }
        })
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以只调用 onBackPressed(),如果您希望在后退按钮之后显示一些活动,您可以提到

Intent intent = new Intent(ResetPinActivity.this, MenuActivity.class);
    startActivity(intent);
    finish();
Run Code Online (Sandbox Code Playgroud)

这对我有用。