覆盖onBackPressed()不会禁用后退按钮

时间:2018-04-03 11:45:20

标签: android android-activity

我有一个扩展AppCompatActivity的活动。

我试图像这样禁用后退按钮:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        onBackPressed();
    }
    return true;
}

@Override
public void onBackPressed() {
    Toast.makeText(this, "Back pressed", Toast.LENGTH_LONG).show();
}

我得到了Toast,这是好兆头,但不好的迹象是,它完成了活动并转到上一个(我想避免这种情况)。

2 个答案:

答案 0 :(得分:0)

如果您使用 onBackPressed ,请立即删除onKeyDown。阅读onKeyDown() or onBackPressed()

<强> FYI

删除此方法

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        onBackPressed();
    }
    return true;
}

只需使用

@Override
public void onBackPressed() 
{
  //super.onBackPressed();
}

答案 1 :(得分:0)

覆盖活动中的 onBackPressed

@Override
    public void onBackPressed() {
        backButtonHandler();
        return;
    }

在onBackPressed()

中的代码中编写代码
 public void backButtonHandler() {
    Toast.makeText(this, "Back pressed", Toast.LENGTH_LONG).show();
}