在Android中关闭/完成活动的正确方法

时间:2012-06-15 15:54:40

标签: android android-activity activity-finish

我的应用程序在包含ListView的Activity A启动。如果用户点击“添加”按钮并进入活动B,ListView可以添加项目。

在活动B中,他们填写一些表格,点击“确定”按钮,将其带回活动A,新项目被添加到ListView。

从B到A之后我有一个finish()方法 - 但不是相反。

所以如果你在添加三个项目后回击三次。它只会重复列表视图(活动A)3次以上 - 少了一个已添加的项目。

这样做的最佳方式是什么?我不能在“添加”按钮(从A到B)上放置一个完成方法,因为如果你在活动B中,它将关闭应用程序,而不是将你带回A - 我不想要。也就是说,如果用户改变主意并且不希望在B中点击“确定”来“添加新项目”。手动后退按钮是唯一的答案吗?

1 个答案:

答案 0 :(得分:3)

使用startActivityForResult()启动活动B,填写表单后完成活动B.

修改

当您startActivityForResult()时,您传递了2个参数,即intentrequestcode。完成新活动后(在您的案例中为活动B),您使用函数setResult(RESULT_OK)表示活动B中的操作成功,然后您调用finish()。致电finish()后,活动B将返回活动A并致电onActivityResult(int requestCode, int resultCode, Intent data)。参数requestcode有助于识别返回的特定活动/请求。

希望这个解释可以帮到你。