【问题标题】:AndroidStudio - Save EditText when activity changeAndroid Studio - 活动更改时保存 EditText
【发布时间】:2018-01-13 09:06:46
【问题描述】:

好的,有一个editText列表,用户填写所有玩家的名字,比如活动2。然后点击开始并在活动3上玩游戏。当他回到活动2时,名字是仍在editTexts中,如果他愿意,他可以添加一个参与者,这没关系,但是当他在菜单中退出活动1,然后再次打开活动2时,所有名称都将被删除。

有没有办法将editText内容保存在他们的位置,即使他离开活动2并在之后回来?你怎么能做到这一点?

你能避免在按下返回时调用destroy方法,还是需要以某种方式保存它们并将它们放回去?

谢谢!

【问题讨论】:

    标签: android android-activity android-edittext save android-ondestroy


    【解决方案1】:

    根据Save data in activity's onDestroy method,您应该将数据保存在活动(在您的情况下为活动 2)的 onStop 方法中。从技术上讲,您可以将其保存在您想要的任何位置,并将其传递回 onStartActivity 意图中的活动 2。

    【讨论】:

    • 我搜索了如何做到这一点,但我做不到。因为当我第一次打开活动 2 时,没有 editText 所以也没有保存额外内容,所以它会出错..
    • 所以将信息保存为字符串变量,当您创建编辑文本时,使用该字符串填充它们?
    【解决方案2】:

    如果您只想在应用程序处于活动状态时使用名称,则可以将名称存储在 Singleton 类中。

    或者,如果即使应用程序被杀死并再次打开,您也想要名称,您必须将其存储在持久存储中。 SharedPreferences 或数据库 (SQLite)。

    查看文档:

    https://developer.android.com/training/basics/data-storage/shared-preferences.html

    https://developer.android.com/training/basics/data-storage/databases.html

    【讨论】:

    • 我不希望在应用程序关闭时保存它,只有当他们返回菜单(活动 1)并返回活动 2 时才保存。我该如何实现?我搜索了单例类,但没有找到很多信息。谢谢。
    • 当您按下返回时,Activity2 被破坏,随之而来的是,所有 EditText 值都被破坏。所以你需要一些地方来存储值,比如在 DataStore 类中,一旦用户返回到 Activity2,你必须保留 DataStore 中的值并将其设置为 Activity2 的 EditText。如果您需要更简单的解决方案,请在 Activity2 中有一堆静态字符串。并将 EditText 值保存在这些字符串中。用户返回 Activity2 后,您可以将这些字符串设置为 EditTexts。
    • 天哪,这太简单了。我很抱歉这个愚蠢的问题!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多