首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何覆盖android中动作栏上的后退按钮?

如何覆盖android中动作栏上的后退按钮?
EN

Stack Overflow用户
提问于 2013-01-21 19:34:30
回答 8查看 86.1K关注 0票数 99

我想自定义活动后退按钮在行动栏,而不是在硬键后退按钮。我已经重写了onBackPressed()方法。它可以使用我的模拟器的后退按钮,但不能使用操作栏的后退按钮。

我希望它发生在动作栏上。我该怎么做呢?

下面是我的代码:

代码语言:javascript
复制
@Override
public void onBackPressed() {
    Toast.makeText(getApplicationContext(),"Back button clicked", Toast.LENGTH_SHORT).show(); 
    return;
}

我使用了这个敬酒词,无论后按是否正常工作,但实际的实现更改类似于返回到先前的活动。但这不适用于操作栏顶部的按钮(除了活动的标题)。

请任何人都能给我指明问题所在。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-01-21 19:38:46

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

代码语言:javascript
复制
@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;
}
票数 216
EN

Stack Overflow用户

发布于 2015-01-07 06:02:36

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

代码语言:javascript
复制
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
            if (item.getItemId() == android.R.id.home) {
                    onBackPressed();
                    return true;
            }
            return false;
    }
票数 50
EN

Stack Overflow用户

发布于 2015-08-14 00:14:26

要记住的两件事是,用户可以按back按钮或按actionbar home按钮。

所以,如果你想把他重定向到同一个目的地,你可以这样做。

代码语言:javascript
复制
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
    }
    return false;
}

@Override
public void onBackPressed() {
    super.onBackPressed();
    Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
    startActivity(intent);
    finish();
}

这将把用户带到按下键或操作栏按钮的意图。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14437745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档