android - 覆盖操作栏中的向上按钮

标签 android destroy

我想避免在单击操作栏中的 < 按钮时破坏父 Activity 。

当我们按下那个按钮时,从 AppCompatActivity 调用了哪个方法?

我有办法覆盖它吗?有没有办法覆盖所有 Activity ?

最佳答案

i'd like to avoid parent activity being destroyed whenever i clicked < button in action bar.

一旦您按下该按钮,您的父 Activity 将暂停,而不是被销毁。

is there a way for me to override it? and is there a way to override for all activities?

只需调用:

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);

您需要将它调用到要覆盖按钮的 Activity 中。没有其他选择可以称之为“一劳永逸”。

which method is being called from AppCompatActivity when we press that button?

默认情况下,其中没有方法。如果您使用 Toolbar,请调用 setNavigationOnClickListener() 以在按下该按钮时执行某些操作。

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // do something here, such as start an Intent to the parent activity.
        }
    });

如果您使用 ActionBar,该按钮将在 Menu 上可用:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        // do something here, such as start an Intent to the parent activity.
    }
    return super.onOptionsItemSelected(item);
}

关于android - 覆盖操作栏中的向上按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30679133/

相关文章:

ruby-on-rails-3 - Rails 从另一个 Controller 中调用 destroy 方法

java - 在Java小程序中调用无限循环

javascript - 模型创建者关于 UI5 中销毁的责任?

javascript - 将文本工具添加到 Paint App HTML5 Canvas

javascript - jQuery droppable 对象执行 destroy() 但抛出错误

android - android native 应用程序中的长轮询解决方案?

javascript - 用于 React-Native 应用程序的平台特定 ios/android typescript 文件的相对导入

java - 如何搓图?

android - 在不同的 Android 版本上动态更改工具栏菜单项文本颜色

android - 如何启动第三方应用程序的 Intent ?