问题标签 [onsaveinstancestate]

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 投票
1 回答
2890 浏览

android - LayoutManager.onSaveInstanceState() 不工作

我正在尝试保存我RecyclerView的状态GridLayoutManager,但是在调用onSaveInstanceState()活动时以及当我尝试调用onSaveInstanceState()总是返回相同对象的布局管理器时。我尝试使用方法“ findFirstVisibleItemPosition”,但它总是返回-1。

RecyclerView 有适配器,适配器有一些元素,我可以滚动它们!我不知道为什么我无法获得完全初始化和工作组件的项目位置!请帮忙!

有我的代码:

0 投票
1 回答
34 浏览

android - 更改屏幕方向时如何保持我的应用程序语言不变?

我用多语言完成了我的应用程序,但是当设备方向更改为横向时,应用程序的语言也会更改。

我可以使用(onSaveInstanceState)方法在旋转屏幕时保持应用程序语言而不改变吗?

我必须插入什么代码?

0 投票
1 回答
38 浏览

android - 2 次旋转后的应用程序状态

我已经阅读了有关该主题的文档,在前台活动将被销毁之前保存状态...

现在一切都很好(在设备旋转之后),但是当我在旋转后再次旋转我的设备时,我会再次丢失我的数据:(

这是我的代码

我认为解决方案可能是检查实例状态是否已经恢复......

我在这里试过这个:

但是我在 onCreate() 方法中的初始部分将在我的结果字段中写一个零

谁能告诉我我是否接近解决方案?

0 投票
1 回答
35 浏览

android - 覆盖 onSaveInstanceState 后我的应用程序不断崩溃

我有一段代码旨在帮助我了解如何覆盖 onSaveInstanceState 方法,以便在设备旋转时保留一些数据。

代码非常简单,没有做任何有趣的事情:有两个按钮,当用户单击其中任何一个时,它都会禁用它们。它工作得很好,除了按钮被禁用后,如果你旋转设备,它们会重新启用。

我已经为 onSaveInstanceState 添加了一个覆盖,但现在它会随着旋转而崩溃。我不知道我做错了什么。

这是代码:

有两个按钮:

一种将 Button 和 boolean 作为参数的方法,因此我可以切换按钮:

使用前一种方法禁用两个按钮的方法,将与侦听器一起调用:

和按钮上的听众:

所有这一切都很好。现在重写 onSavedInstance:

我有两个键和两个布尔值。每个按钮一个:

然后,我检查是否启用了任何按钮,相应地为布尔值分配一个值,并将它们与键一起保存为键值对:

最后,在调用超类之后,我检查它是否为空。如果不是,我将存储在其各自键中的值分配给每个布尔值,并在启用/禁用按钮的方法中使用布尔值。

只是为了确定代码的语法没有问题,这里是它的完整性:

0 投票
2 回答
696 浏览

android - 为什么默认情况下在方向更改时片段不能保存 EditText 状态?

我有一个片段,其中包含许多 EditText。当我旋转设备时,EditText 变为空白。片段未保存其状态/值。但同时,如果我将该片段布局用于活动,它会存储 EditText 的状态。是的,我已经为每个 EditText 提供了 ID,如果重要的话,甚至是每个视图。

我知道我可以使用 saveInstanceState 来保存这些值,但是还有其他方法吗?因为该片段中几乎有 20 个 EdiText,所以我应该使用 saveInstanceState,将这么多变量/值保存在 saveInstanceState 中可以吗?

更新: 我在改变方向的活动中重新创建片段,所以这就是 EditText 无法保存其状态的原因。如此愚蠢的错误!所以现在我只使用了 saveInstanceState ,如下所示:

就是这样。EditText 现在正在保存它的状态。感谢 JorgeGil 节省了我的时间!

0 投票
2 回答
2565 浏览

android - 如何检查 onSaveInstanceState 中 Bundle 对象的大小?

我正在使用 Android Studio 3.0.1,它允许检查以下Bundle对象onSaveInstanceState

为此,添加一个断点,一旦调试器停止,右键单击Bundle对象,如屏幕截图所示,然后从上下文菜单中选择“显示捆绑对象...”。

Android Studio - 显示捆绑对象

然后会打开一个窗口列出Bundle对象,如下图所示:

Android Studio - 捆绑对象

有没有办法找出整个和它的孩子占据了多少内存?Bundle我想确定更大的块来优化并避免TransactionTooLargeException在 Android >= 7 上抛出。

像 Ubuntu Disk Usage Analyzer这样的东西会有所帮助 - 请参阅 screeshot:

磁盘使用分析器

0 投票
2 回答
76 浏览

java - 如何保留第一个活动的值并在从第二个活动切换回第一个活动时查看它们

我在第一个活动的文本框中输入了一些文本。

然后,在按下“保存”按钮时,我被移至第二个活动。

现在,在按下“返回”按钮时,我会回到第一个无法看到之前输入的值/文本的活动。

我也尝试过使用共享首选项。

是我的代码

MainActivity.java

Main2Activity.java

activity_main.xml

activity_Main2.xml

0 投票
1 回答
163 浏览

android - android TextView onRestoreInstanceState 得到错误的值

我的代码是这样的:

当我将它传递给in并且我得到 0 in时,该mProgress值为 60 。savedStateonSaveInstanceStateonRestoreInstanceState

如果我将代码修改为 ,savedState.mProgress = mProgress那么我在.onSavedInstanceStatesavedState.mProgress = 10onRestoreInstanceState

太奇怪了。如果我做mProgress静态然后我得到60。我不知道怎么回事。

0 投票
2 回答
240 浏览

android - 应用更新后 Activity 生命周期会发生什么变化?

假设这种情况。您有一个应用程序,您可以在其中填写一个活动的表格。该活动使用onRestoreInstanceStateonSaveInstanceState保存表单的响应。如果用户使用应用程序版本 1 填写表单,然后 PlayStore 在他完成之前自动将应用程序更新并安装到版本 2,那么表单是在哪个版本上填写的?

同样的问题,但假设用户强制更新?

谢谢

0 投票
2 回答
595 浏览

android - 恢复微调器及其适配器的状态

我在尝试在我的应用程序中恢复 Android Spinner 的状态时遇到问题。目前,我的 Activity 的 ListView 标头中有多个 Spinner,它们相互依赖,因为选择一个 Spinner 会为后续 Spinner 加载数据。

我遇到的问题是,当我在 Spinners 上手动设置选择时,恢复状态似乎不起作用。我已经尝试过 onRestoreInstanceState 和 onResume。在查看 LogCat 输出时,似乎设置选择是异步的。当我必须等待一个被选中然后另一个可以填充然后设置时,如何可靠地恢复这些 Spinner 的状态?

编辑:添加代码

Activity 的 onCreate():

Activity的onRestoreInstanceState():