问题标签 [savestate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4199 浏览

android - Android片段不保存状态

我最近将我的应用程序从基于活动的应用程序转换为基于片段的应用程序。这是一个记分应用程序,当它是一项活动时,我可以轻松地保存和恢复分数。但是,这似乎不能作为一个片段工作。这是我的代码:

我在一个活动中成功地使用了这个完全相同的代码,onRestoreInstanceState而不是onActivityCreatedtry/catch。问题是当我尝试从包中提取某些内容时,我遇到了空指针错误。我可以在日志中看到保存状态,然后是 onActivityCreated,但 onActivityCreated 似乎没有得到 onSavedInstanceState 放入包中的内容。我只是在调用savedInstanceState.getAnything(). 但是,根据我的阅读,onCreateonCreateViewonActivityCreated都使用相同的捆绑包。我尝试将代码移至其他两个,但没有成功。

0 投票
3 回答
7156 浏览

java - Android:返回Activity时如何在EditText中保存值

我正在尝试将输入的值保存到表单中,以便当用户返回活动时输入的内容保持填充状态。因为它现在起作用了。用户可以输入详细信息并单击“发送按钮”。下一个活动将显示用户输入内容的详细信息。如果用户选择“后退按钮”,用户会返回上一个活动,但会从表单中的字段中擦除内容。任何建议,将不胜感激。

第二次活动……

0 投票
1 回答
166 浏览

vim - 用 mksession 保存 vim 状态不会保存 Ctrl-6 状态

当我使用 :mksession mysavedsession 保存我的 vim 会话时,它会保存与我相关的所有内容,除了在通过 Ctrl-6 显示的每个 vim 窗口中打开的交换缓冲区。

有什么简单的解决方案吗?

0 投票
0 回答
286 浏览

android - Android应用程序的奇怪重启

可能是我误解了它应该如何工作,但发生了一些奇怪的事情。

我们的主要活动是“MainMenuActivity”,我们称之为子菜单。用户从那里选择一个选项并获取一些数据,然后可以放大该数据。

如此有效地,我们有一个 A -> B -> C -> D 链

然后我通过拨打电话强制应用程序完成。logcat 清楚地表明应用程序死了。然后,当它重新启动时,我会在活动上超时。这就是 logcat 的样子:

MenuScreenActivity 是上面描述的“B”。PrescriptionsListScreen 是“C”。MedicinePurchasesListScreen 是“D”。

我在 D 中添加了 Log 命令,但它没有到达那里的“onSaveInstanceState”和“onRestoreInstanceState”方法。

它似乎确实回到了“C”并进入了它的“onRestore”,但捆绑中有垃圾。视图结构未重建。

我在“C”中得到一个 NullPointerException,因为视图没有被重建。

为了确保它们不是我添加了打印出视图当前内容的完整树的日志命令。在 C 中的“onSave”之前它是可以的,但在执行“onRestore”之后它是空的。

我肯定会打电话给“onSave”和“onRestore”中的“super”。

============================================

编辑:我在“onSaveInstanceState”末尾和“onRestoreInstanceState”开头记录了savedInstance的内容。

这就是我得到的。

节省:

恢复:

可以看出,“viewHierarchyState”包是不一样的。但是,在其他可以正常工作的屏幕中。

这个和其他屏幕唯一的区别就是这里的屏幕内容是一个TabHost。但是,这不是 TabActivity。这是一个普通的活动,带有标签主机的 XML 并在代码中设置。

0 投票
1 回答
321 浏览

android - 由于可打包对象,在片段上保存状态会产生 StackOverflow 错误

我在一项活动下使用 2 个不同的片段。其中一个片段包含一个列表,另一个片段包含列表中每个元素的详细视图。当活动创建片段时,2 个对象作为新实例的参数传递。

这是一个复杂的对象,其中包含许多字段(BigIntegers、ArrayLists、Strings..)。该对象实现 Parcelable 以便与片段一起使用。当信息通过分片传递时,解析数据没有任何问题,实际上我认为为了保存状态,需要这些对象是可打包的,而不是作为分片之间的参数传递。

该对象包含在一个对象列表中,其中包含对主要对象的引用。将 O1 作为对象 1,将 O2 作为对象 2,这将是一个“图形”解释:

O1:

  • 细绳
  • 大整数
  • 数组列表
  • ……
  • 数组列表

氧气:

  • 大整数
  • O1<-------- 这是对 O1 对象的引用

当我离开活动(通过单击手机中的主页)并尝试保存状态时,我收到 StarOverflow 错误。是否与 parcelable 进入无限循环试图保存整个对象而不是引用有关?我在 android 上处理 parcelable 对象时遇到了很多麻烦。

0 投票
1 回答
2650 浏览

android - onSaveInstanceState/onRestoreInstanceState 和查看状态

根据 onSaveInstanceState 的文档:

默认实现负责处理大多数 UI 每个实例的状态

和 onRestoreInstanceState:

此方法的默认实现会恢复以前冻结的任何视图状态

我不确定这到底是什么意思。这是否意味着在被杀死并现在恢复后返回时,显示给用户的 UI 屏幕会自动恢复其所有数据?如果是这样,我没有看到。除非我自己 setContentView,否则我得到的只是一个空屏幕。

我误解了意思吗?

0 投票
2 回答
779 浏览

android - onSaveInstanceState 总是被调用

我似乎和其他人有相反的问题。:)

每当我从一个活动导航到下一个活动时,都会调用我的 onSaveInstanceState。我签入了 LogCat,它绝对不会杀死活动。另外,我看到返回时未调用 onRestoreInstanceState ,因此它必须仍在内存中。

我认为它仅在释放内存或方向更改时才被调用。

0 投票
2 回答
1653 浏览

android - 如何保存动态创建的editTexts的状态

我被困在如何在屏幕方向上保存我的 EditTexts 的状态。目前,如果将文本输入到 EditTexts 并且屏幕被定向,则字段将被擦除(如预期的那样)。

我已经在调用 onSaveInstanceState 并保存一个字符串,但我不知道如何保存在代码中创建的 EditTexts,然后在重绘活动时检索它们并将它们添加到 EditTexts。

我的代码片段:

我的主要活动如下:

在单击按钮之前,我不需要对这些值做任何事情。如果它们是 ListView 会更容易吗?我猜我仍然会遇到保存它们并在旋转时检索它们的问题。如果它有帮助我有一个对象 m 这是一个字符串 [] [] 我可以暂时以某种方式将它们存储在

0 投票
1 回答
1746 浏览

android - 将片段 A 更改为片段 B 时保存片段状态

我有一个片段 A 和一个片段 B。

在片段 A 中,我对容器内部的一些视图进行了膨胀。然后我切换到片段 B,当我转向片段 A 时,膨胀的视图消失了,我丢失了该视图中的数据。

有谁知道是什么问题?感谢您的时间和帮助

在此处输入图像描述

0 投票
2 回答
999 浏览

android - 保存容器的状态(LinearLayout)

我有两个片段。

在第一个片段中,我有一个用于片段视图的容器静态(LinearLayout)。在这个容器中,我对几个视图进行了膨胀。

我更改为第二个片段,但是当我返回第一个片段时,膨胀的视图消失了。

如何保存容器的状态?有人可以给我一个例子吗?感谢您的帮助和关注

在此处输入图像描述