当前位置: 首页 > 知识库问答 >
问题:

在操作栏上显示后退按钮

宋洲
2023-03-14

我正在尝试在Action bar上显示一个Back按钮以将上一页/活动移动到主页面(第一次打开)。我做不到。

我的代码。

ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(true);

代码在onCreate中。

共有3个答案

卞浩漫
2023-03-14

魔法发生在onOptionsItemSelec中。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            // app icon in action bar clicked; go home
            Intent intent = new Intent(this, HomeActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
公冶桐
2023-03-14

我认为支持NavigateUp()是最好、最简单的方法,请检查以下步骤。第一步是必要的,第二步有其他选择。

第1步显示后退按钮:在方法中添加这一行以显示后退按钮。

assert getSupportActionBar() != null;   //null check
getSupportActionBar().setDisplayHomeAsUpEnabled(true);   //show back button

第2步执行反向单击:重写此方法

@Override
public boolean onSupportNavigateUp() {  
    finish();  
    return true;  
}

就这样完成了,或者第2步备选方案:您可以将meta添加到清单文件中的活动中,如下所示

<meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="MainActivity" />

编辑:如果您没有使用AppCompat活动,则不要使用支持word,您可以使用

getActionBar().setDisplayHomeAsUpEnabled(true); // In `OnCreate();`

// And override this method
@Override 
public boolean onNavigateUp() { 
     finish(); 
     return true; 
}

感谢@atariguy的评论。

黄鸣
2023-03-14

这是一个简单的显示后退按钮

actionBar.setDisplayHomeAsUpEnabled(true);

然后您可以在onOptionsItemSelected处自定义back事件

case android.R.id.home:
this.finish();
return true;
 类似资料:
  • 在这些Android文档的帮助下。我正在尝试做一个操作栏后退按钮。我得到一个操作栏后退按钮,如下图: 输出: 但我的问题是在看了画廊的图片后,我按下了动作栏后退按钮。 然后它不工作了。但它必须回到上一页。 下面列出了代码。 厨房活动。java: GalleryDetailFragment。java: 如果你知道如何解决这些问题,任何人都可以帮助我。谢谢你。

  • 我正在从应用程序中的迁移到。但我不知道如何在

  • 我的问题是一个热门问题,我阅读并尝试了很多相关帖子,但我没有实现预期的结果,显示菜单。我还没有找到正确的解决方案。 我的应用程序可以在Android 4 . 2 . 2版本上完美运行。(版本代码17)我在Galaxy Duos手机上试用过。 我使用Android版本7,0(版本代码24)我尝试了更多目标SDK版本的变体,具有8,19,24,25并且没有目标SDK规范。 以下是一些相关的部分 -盖德

  • 我在这件事上完全被难住了。我有一个活动C,当我试着按下后退按钮时,它工作了。但是,当我使用操作栏中的home/up按钮时,它就会崩溃(请参见下面的错误)。下面是我的代码中处理备份/备份按钮的部分。 活动C: 错误: 这是否与到达活动C有两种可能的方式有关?要么是-

  • 问题内容: 我想在操作栏中自定义活动后退按钮,而不是在硬键后退按钮中自定义。我已经重写了该方法。它可以与我的模拟器后退按钮一起使用,但不能与操作栏后退按钮一起使用。 我希望它与操作栏一起发生。我怎样才能做到这一点? 这是我的代码: 我已经用了这个祝酒,无论是否按回去都可以,但是实际的实现方式有所变化,例如想回到上一个活动。但这不适用于操作栏顶部的按钮(活动标题除外)。 请任何人可以指定我这个问题。

  • 我想自定义操作栏中的“活动后退”按钮,而不是硬键后退按钮。我已经重写了onBackPressed()方法。它适用于我的emulator back按钮,但不适用于action bar back按钮。 我希望它发生在动作栏上。我该怎么做? 这是我的代码: 我已经使用了这个祝酒词,不管后退是否有效,但是实际的实现变化喜欢移动回以前的活动。但是这不适用于操作栏顶部的按钮(除了活动标题)。 请任何人都可以指