Android 无法自定义Actionbar';s向上导航方法

Android 无法自定义Actionbar';s向上导航方法,android,android-actionbar,kotlin,Android,Android Actionbar,Kotlin,在activity类中,我将actionbar设置为: MyActivity setSupportActionBar(findViewById(R.id.toolbar_my)) supportActionBar?.apply { setDisplayHomeAsUpEnabled(true) setDisplayShowHomeEnabled(true) } 因为我需要重写onOptionsItemSelected(…)(在fragment类中

在activity类中,我将actionbar设置为:

MyActivity

setSupportActionBar(findViewById(R.id.toolbar_my))
    supportActionBar?.apply {
        setDisplayHomeAsUpEnabled(true)
        setDisplayShowHomeEnabled(true)
    }
因为我需要重写
onOptionsItemSelected(…)
(在fragment类中),所以我没有在这里重写
onSupportNavigateUp()
。 这种活动是一个片段。我想要的是,当单击actionbar up按钮时,除了弹出,还要撤销一个自定义的save()方法

因此,在片段的
onoptionItemSelected(…)
中,为
item.id==android.R.id.home
案例编写一些代码。然而,我在这里做了一个转折点,发现当单击up/home按钮时,
android.R.id.home
案例中的代码永远不会被撤销。所选方法上的其他项将起作用

在fragment类中:

MyFragment

    override fun onOptionsItemSelected(item: MenuItem?): Boolean {

    when (item?.itemId) {
        android.R.id.home -> { 
// code here not gets called when click up/home button
            mPresenter.save()
            return true
        }

        R.id.edit-> {
            // The code here is revoked when item selected.
        }

        else -> {
            return super.onOptionsItemSelected(item)
        }
    }
}
我试图重写activity类中的另一个
onOptionsItemSelected(…)
方法,并编写了
android.R.id.home
案例,但仍然无法调用其中的方法

为什么不调用
item.id==android.R.id.home
案例中的代码?

Read

启用或禁用操作栏角落中的“主页”按钮。 (请注意,这是操作上的应用程序主/向上提供。) 条,而不是系统范围的主按钮。)

然后


据我所知,这仍然是我的代码,但更改菜单项吗?类型到菜单类型类型?我试过了,还是没用。首先在代码中启用
setHomeButtonEnabled
对不起,我的错,它仍然不起作用。问题是,当单击up/home按钮时,它永远不会落入android.R.id.home案例中。
 supportActionBar?.setHomeButtonEnabled(true)
 supportActionBar?.setDisplayHomeAsUpEnabled(true)
override fun onOptionsItemSelected(item: MenuItem): Boolean {
    when (item.getItemId()){
        android.R.id.home -> {
            mPresenter.save()
            return true
        }
         R.id.edit-> {
            // some code
        }
    }
    return super.onOptionsItemSelected(item)
}