【问题标题】:Best practise for update view after backstack from new activity从新活动返回后更新视图的最佳实践
【发布时间】:2015-12-11 08:59:53
【问题描述】:

我实际上有一个活动的片段,其中包含一个带有复选框和已删除图像的自定义表格布局。此外,当用户单击在选定行发送邮件的按钮时,我想更新已删除图像的可见性。我调用了一个新的活动,它是我的邮件客户端,所以当我回击时,片段仍然存在,但 onCreateView 没有正确调用,我的视图也没有刷新。所以我想知道哪个是更新它的最佳解决方案(无需以编程方式重新创建我的片段)。

提前致谢:)

【问题讨论】:

  • 你想完全刷新视图而不重新创建

标签: android refresh android-lifecycle back-stack


【解决方案1】:

如果您正在为您的邮件客户端启动另一个 Activity,而不仅仅是 startActivity(intent),请使用 startActivityForResult(intent, requestCode) 方法并覆盖 onActivityResult (requestCode, resultCode, data).

为您的requestCode 定义一个常量,并在您启动邮件客户端时将其用于startActivityForResult。当用户从邮件客户端返回时,onActivityResult 将被调用,其requestCode 参数的值将是您的常量。这是您需要用来为Views 设置适当可见性的回调。

【讨论】:

  • 我认为 activityresult 在下一个创建的 Activity 中是一个 setResult。我会试试的,谢谢。事实上它工作得很好:)
  • 在下一个Activity 中调用setResult 并不是绝对必要的——它会返回RESULT_CANCELED。如果您不区分 OK 和 CANCELED,那么您就可以开始了!
【解决方案2】:

【讨论】:

  • 我确信我之前尝试过,但是我创建表格布局的方法是在 treeObserver 监听器中使用的,这说明视图没有更新。
  • 意思,没听懂?
  • 我已经尝试在恢复覆盖中刷新,但是我的 loadContact 函数被一个侦听器采用,当我回栈时它无效。对不起,如果我的英语很糟糕^^'
猜你喜欢
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多