覆盖操作栏中的“向上”按钮

时间:2015-06-06 05:06:30

标签: android destroy

我想避免在我点击的时候销毁父活动。操作栏中的按钮。

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

有没有办法让我覆盖它?有没有办法覆盖所有活动?

2 个答案:

答案 0 :(得分:14)

  

我想在我点击的时候避免父母活动被破坏。操作栏中的按钮。

按下该按钮后,您的父活动将暂停,而不是被销毁。

  

有没有办法让我覆盖它?有没有办法覆盖所有活动?

请致电:

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

您需要将其调用到要覆盖按钮的活动。没有其他选择可以一次性调用它。

  

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

默认情况下,其中没有方法。如果您使用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);
}

答案 1 :(得分:5)

对于那些正在搜索覆盖向上按钮与后退按钮相同并从活动正确导航到另一个按钮的人,只需覆盖

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