我的应用程序在包含ListView的Activity A启动。如果用户点击“添加”按钮并进入活动B,ListView可以添加项目。
在活动B中,他们填写一些表格,点击“确定”按钮,将其带回活动A,新项目被添加到ListView。
从B到A之后我有一个finish()方法 - 但不是相反。
所以如果你在添加三个项目后回击三次。它只会重复列表视图(活动A)3次以上 - 少了一个已添加的项目。
这样做的最佳方式是什么?我不能在“添加”按钮(从A到B)上放置一个完成方法,因为如果你在活动B中,它将关闭应用程序,而不是将你带回A - 我不想要。也就是说,如果用户改变主意并且不希望在B中点击“确定”来“添加新项目”。手动后退按钮是唯一的答案吗?
答案 0 :(得分:3)
使用startActivityForResult()
启动活动B,填写表单后完成活动B.
修改强>
当您startActivityForResult()
时,您传递了2个参数,即intent
和requestcode
。完成新活动后(在您的案例中为活动B),您使用函数setResult(RESULT_OK)
表示活动B中的操作成功,然后您调用finish()
。致电finish()
后,活动B将返回活动A并致电onActivityResult(int requestCode, int resultCode, Intent data)
。参数requestcode
有助于识别返回的特定活动/请求。
希望这个解释可以帮到你。