【问题标题】:android restore state of edittext after returning to the activityandroid返回activity后恢复edittext的状态
【发布时间】:2013-04-13 21:38:22
【问题描述】:

我是 android 开发的初学者,我正在处理一个可能很容易解决的问题。 我有一个主要活动,它是一个菜单,用户可以单击菜单上的项目。然后使用 startActivity(new Intent("com.example.test.FIRSTITEM")); 启动一个新的活动。此活动开始一个带有少量编辑文本的布局。我在里面写了一些东西。然后回到 MainActivity(菜单所在的位置),必须按下返回按钮。 现在我想要的行为是,如果我返回带有编辑文本的 Activity,我希望它们处于相同的状态 - 这意味着内容不会被清除。 我搜索了很多并尝试了 android:launchMode="" 的所有选项(singleTop、singleInstance、singleTask)。 从 MainActivity 开始新意图时,我还尝试使用标志: startActivity(new Intent("com.example.test.FIRSTITEM").setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP)) 我尝试过使用 onSavedInstanceState(Bundle bundle) 但是在按下后退按钮时永远不会调用这个(可能是因为活动还没有真正完成)

我确信答案很简单,但我似乎找不到。我一定错过了活动如何运作的一些逻辑。 提前感谢您的帮助。

【问题讨论】:

  • 当您返回活动检索数据并将数据设置为editext时,您需要将editext中的数据存储在某处。developer.android.com/guide/topics/data/data-storage.html#pref
  • 那么共享首选项选项是唯一可行的吗?我认为这主要用于在应用程序完全关闭后保存数据。如果我在停止应用后不需要保留数据,我认为会有一种更简单的方法来做到这一点。
  • developer.android.com/guide/topics/data/data-storage.html 检查其他存储选项的链接。使用您的应用需要的那个
  • 共享首选项似乎是最适合我的应用的选项。现在它按预期工作。感谢您的提示

标签: android android-edittext state retain


【解决方案1】:

我认为this 这可以帮助你。你可以使用 onsaveinstancestate() 和 onrestoreinstancestate()。

【讨论】:

  • 我实际上已经尝试过了,但是当我需要它们时,它们从未被调用过。我已经通过使用共享首选项解决了这个问题。无论如何,谢谢。
  • 共享偏好不是正确的方式。它消耗更多资源。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 2018-08-22
  • 2017-12-05
相关资源
最近更新 更多