问题描述
我有一个活动,它有一个 recyclerview,它根据从前一个活动转发的 yearSelected 字符串填充其数据,并添加额外的内容。然后我选择一行并导航到下一个活动以显示所选周的信息。当我想使用操作栏后退按钮返回上一个活动时,它会崩溃,我猜是因为我返回时不再发送意图信息。有没有地方可以在 putExtra 返回时使用它,或者有没有办法将后退按钮设置为像底部的后退按钮那样返回上一个活动?
解决方法
实际上,操作栏应该表现得像一个菜单。 您可以监听“后退”按钮并在 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 .. 因为相同的项目用于 home 和 up(以及内存中的汉堡菜单)。
此外,在处理事件的过程中完成和活动不是很好的做法,但通常会这样做。
,override fun onOptionsItemSelected(item: MenuItem): Boolean{
return when (item.itemId){
android.R.id.home -> {
finish()
true
}else -> super.onOptionsItemSelected(item)
}
}