【问题标题】:Retrieving an object when coming back to Activity返回 Activity 时检索对象
【发布时间】:2019-08-01 19:03:02
【问题描述】:


这是我的问题的背景:

上下文

感谢一个名为“identity_candle”的对象,我制作了一个 Recyclerview 来破坏项目。当我单击项目时,它会将我带到另一个对项目有更多描述的活动。在此 Activity 上,有一个按钮可以查看有关它的更多详细信息,它本身需要另一个布局。
所以当我点击按钮时,它会让我进入另一个活动。
IN Summary, MainActivity (RecyclerVIew) => ItemActivity => "press button" => Activity or Fragment ?(返回:Activity 或 Fragment => ItemActivity(保留前一个对象)

问题

但是当我想回到上一个活动时,它会给我带来错误,因为对象状态“identity_candle”为空。

问题

我该怎么办?当我按下按钮时,我应该使用片段而不是活动吗? (我已经看到该对象在片段和 Activity 之间保持状态,但我不确定)我应该使用 SharedPreference 吗?如果我想创建 Fragment 我应该扩展 Fragment 还是 ActivityFragment ?

【问题讨论】:

    标签: java android android-activity android-fragmentactivity


    【解决方案1】:

    这似乎深深植根于理解Activity lifecyle。如果您还没有参加过该培训,您可能会想要参加。了解onSaveInstanceState()onRestoreInstanceState()Parcelables 应该可以帮助您。

    【讨论】:

    • 这些事情对我来说绝对不是很清楚。所以我会读这个,发布我的答案,你可以告诉我我是否正确?非常感谢
    • 我无法使用“onSaveInstanceState”,因为调用了回调“OnDestroy()”,因此捆绑包 saveinstancestate 为空。我选择使用 startActivityforResult´,然后在调用 onBackPressed 时输入意图。这似乎是正确的方法?
    • 添加您迄今为止尝试过的内容,我会尝试详细说明。使用 onSaveInstanceState() 的目的正是您所描述的场景,因为如果 onDestroy() 被命中,您的 Activity 最终将被重新创建并且您的实例变量会丢失。
    猜你喜欢
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 2021-10-29
    • 2011-07-23
    相关资源
    最近更新 更多