如何在Android中覆盖操作栏后退按钮?

2022-08-31 10:25:24

我想在操作栏中自定义活动后退按钮,而不是在硬键后退按钮中。我已经覆盖了该方法。它适用于我的模拟器后退按钮,但不适用于操作栏后退按钮。onBackPressed()

我希望它与操作栏一起发生。我该怎么做?

这是我的代码:

@Override
public void onBackPressed() {
    Toast.makeText(getApplicationContext(),"Back button clicked", Toast.LENGTH_SHORT).show(); 
    return;
}

无论向后按是否有效,我都使用了这个祝酒词,但实际的实现更改喜欢移回以前的活动。但这不适用于操作栏顶部的按钮(除了活动的标题)。

请任何人都可以指定我的问题。


答案 1

我认为您要覆盖主页按钮的单击操作。您可以在活动中像这样覆盖此功能。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        Toast.makeText(getApplicationContext(),"Back button clicked", Toast.LENGTH_SHORT).show(); 
        break;
    }
    return true;
}

答案 2

如果您希望 ActionBar 后退按钮的行为方式与硬件后退按钮相同:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
            if (item.getItemId() == android.R.id.home) {
                    onBackPressed();
                    return true;
            }
            return false;
    }

推荐