有没有办法让 actionBar 后退按钮重新发送 putExtra 的意图?

is there a way to make actionBar back button resend an intent with putExtra?

我有一个 activity,它有一个 recyclerview,它根据从前一个 activity 转发的 yearSelected 字符串填充它的数据,并添加额外的内容。然后我选择一行并导航到下一个 activity 以显示所选周的信息。当我想使用操作栏后退按钮 return 到前一个 activity 时它崩溃了,我猜是因为当我 return 后退时我不再发送意图信息。有什么地方我可以在 return 返回时使用 putExtra 或者有没有办法像底部的后退按钮一样将后退按钮设置为 return 到前一个 activity ?

实际上,操作栏的行为应该像一个菜单。 您可以监听“后退”按钮并在 onOptionsItemSelected 中执行您需要的任何操作..

public boolean onOptionsItemSelected(MenuItem item) {
    ...
    switch (item.getItemId()) {
    case android.R.id.home:
        <set return result etc and finish> 
        return true;
    ...

请注意,后退按钮项目 ID 是 android.R.id.home .. 因为同一项目用于主页和向上(以及记忆中的汉堡菜单)。

此外,在处理事件的过程中完成并 activity 不是很好的做法,但通常会这样做。

override fun onOptionsItemSelected(item: MenuItem): Boolean{
    return  when (item.itemId){
        android.R.id.home -> {
            finish()
            true
        }else -> super.onOptionsItemSelected(item)

    }

}