【问题标题】:Go back to previous Activity without reloading it返回上一个活动而不重新加载它
【发布时间】:2015-07-30 10:33:45
【问题描述】:

Activity Startup 在快照中显示编辑或添加新的对话框

我有一个像用户表单这样的活动,有一个添加用户签名的按钮,当签名完成后,该按钮将用户带到下一个活动,然后在按钮上单击“完成”应用程序跳回用户表单活动,但 oncreate 方法被称为用户表单活动,因此在进入签名活动之前输入的所有数据都会丢失。它再次出现对话框

我在保存签名后使用finish(),但它会重新加载上一个活动。 我也使用onBackPressed(),它适用于取消按钮,但不适用于保存按钮。 如果我保存并调用onBackPressed(),它也会重新加载用户表单活动,但如果我只是去签名活动并按下取消按钮onBackPressed() 可以正常工作,并且完成()也可以工作。

请给点建议

我检查了finishActivity(),但它也不起作用

我只希望如果我转到签名活动并返回编辑或添加新的对话不会显示。请帮忙!

【问题讨论】:

标签: android android-activity activity-finish


【解决方案1】:

您需要保存活动的状态才能做到这一点..

覆盖onSaveInstanceState(Bundle savedInstanceState) 并写入要保存的值,然后通过覆盖onRestoreInstanceState() 接收它们

您可以从this SO Question阅读更多内容。

如果您有很多值,请使用parcelable。这个SO question 对我非常有用。

【讨论】:

  • 感谢 Kushal,但我有 20 多个关于表单活动的字段。它对我来说很长。请提供任何紧凑的解决方案!
  • 你可以使用Parcelables第一次会多加一点代码。但我建议你去吧..
  • 为什么在我完成()当前活动时调用先前活动的 onCreate 任何想法???我也有用于值的 pojo 类,但我不想这样做,我只想停止调用 finsh() 上先前活动的 oncreate 或做其他事情。
  • 您是通过调用startActivity(mIntetnt)startActivityForResult(mIntent, requstCode) 开始签名活动吗?
  • 您应该使用 startActivityForResult.. 因为您将一些数据传回之前的活动.. 您会通过快速 google 找到好的文章和 SO 问题..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-25
  • 2021-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多