问题标签 [onrestoreinstancestate]

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 投票
0 回答
189 浏览

java - Android,方向改变后焦点从一个视图转移到另一个视图

我创建了一个自定义复合视图,例如

当然这是一个简化版。

我已经设法在绑定到视图的 java 类中保存和恢复视图实例状态,但是我重写了

这应该防止将保存/恢复实例状态调用分派给子视图(theTextView和 the EditText)。

现在我有一个片段,其中包含两个具有不同 ID 的自定义视图;EditText当方向发生变化时,焦点总是在片段重新创建后转到第一个。我不明白为什么。

例如,让我们调用 edittext1 和 edittext2 属于具有 id1 和 id2 的自定义视图的 edittexts,会发生这种情况:edittext2 具有焦点 -> 方向更改发生 -> onSaveInstaceState 在两个视图上调用 -> edittext2 onChangeFocus 调用(从 true 到 false ) -> onRestoreInstanceStateCalled 在两个视图上 -> edittext1 onFocusChange 调用(从假到真)。

我不希望这种情况发生,我错过了什么?

0 投票
0 回答
33 浏览

android - SAVE RESTORE VIEW:未显示字段

我保存并恢复视图,但我丢失了编辑文本、复选框等。使用调试器,我可以看到所有这些字段都在“savedInstanceState”(在恢复部分)中,但没有显示;也许 setcontentview 还不够?预先感谢您的帮助。米歇尔F

0 投票
3 回答
487 浏览

android - onRestoreInstanceState 不重新加载所有视图

我正在开发一个应用程序,用户可以在其中填写带有照片和一些是/否问题的表格。选择是时,您需要在对话中添加额外信息。然后将此信息插入到 a 中TextView,并将此TextView插入到 aLinearLayout中。

问题是,当用户切换到另一个应用程序时,这个屏幕会进入后台,然后被 Android 销毁(因为系统需要内存)。然后当用户返回应用程序时,该onRestoreInstanceState()方法被调用,带回了一些变量,但没有返回TextView内部LinearLayout。我正在使用 Android 注释来返回这些变量。如何恢复那些 Android 视图?

对不起我的初学者英语。提前致谢。

0 投票
1 回答
167 浏览

android - 保存recyclerview状态时出现异常

我得到了例外

“引起:java.lang.NullPointerException:尝试在 onSaveInstanceState 上调用空对象引用上的虚拟方法 'void android.os.Bundle.putParcelable(java.lang.String, android.os.Parcelable)'

0 投票
1 回答
476 浏览

android - Android - 在应用程序实例中保存实例状态(TransactionTooLargeException)

如果宗地大小超过限制,Android 7.0 在恢复实例状态时开始抛出 TransactionTooLargeException。

但是我的应用程序必须保存没有大小限制的加载内容。所以很容易导致这个错误。

在应用程序实例中保存实例状态是否安全?

Activity在后台时会被删除吗?

有没有办法在不抛出这个异常的情况下保存大数据?

0 投票
2 回答
378 浏览

java - 在 onSaveInstanceState(Bundle) 的派生图形类中实现 Parcelable

我想为屏幕方向更改(纵向/横向)保存和恢复一些数据。

为此,我在我的类中实现了 onSaveInstanceState 和 onRestoreInstanceState ,其中包含我要恢复的列表。它似乎正在工作,并且在 MyObject 类中我实现了Parcelable

问题是我的对象扩展了 GifImageButton并实现了Parcelable,所以我在对象构造函数中收到此错误:“pl.droidsonroids.gif.GifImageButton 没有可用的默认构造函数”

对于问题,请查看以下代码:

我想扩展 GifImageButton但随后出现错误“pl.droidsonroids.gif.GifImageButton 没有可用的默认构造函数”:

public MyObject(String number, String color) AND public MyObject(Parcel in)

注意:如果我删除:“extends GifImageButton”和“public MyObject(Context context, AttributeSet attrs)”,则编译代码。

我可以在实现 Parcelable 的对象类中扩展 GifImageButton 吗?如果没有,那么我该如何解决?

0 投票
2 回答
199 浏览

java - 实现 savedInstanceState 后 Android App 停止

编辑:添加onPause()and后onResume(),应用程序不再崩溃;但是,该实例仍未保存,并且我丢失了放入EditText. 我推测我应该使用onPause(),保存实例,并使用(或者可能使用 thisonStop()一起使用)来调用它- 我现在正在阅读如何使用这三种方法,我将不胜感激任何指针。onResume() onSaveInstanceState(), onRestoreInstanceState()

我目前正在编写一个只有四个(也许五个)活动的简单 Android 应用程序。该应用程序的功能是为大学学生提供帮助和建议,他们需要自己添加课程(在activity_main_page页面上显示为按钮) - 当按下按钮时,它将把学生带到建议页面。

我目前正在处理的是课程添加页面:activity_add_course. 我正在尝试添加一种方法来保存EditText活动暂停/停止时(例如,当用户按下后退按钮或主页按钮时)的文本状态(这是用户添加课程名称的地方),并且当用户返回页面时将其召回。

在我尝试将实例状态保存添加到应用程序之前,该应用程序运行良好(使用虚拟意图连接活动 - 我没有添加 SQL 数据库来实际使应用程序工作)。现在我已经添加了实例状态保存和调用,当我单击后退按钮时应用程序停止运行,我不知道为什么?或如何解决?- 此问题已得到解决。谢谢@peresisUser

这是后退按钮的代码

这些是我使用的代码,例如保存和恢复。

edCourse1-4都是不同的EditTexts

据我了解,onSaveInstanceState()将保存edC1为文本 fromedCourse1.getText()+""等,然后onRestoreInstanceState()将恢复String内部edC1toedCourse1等等。

在这方面遇到麻烦,我不知道如何解决我的下一个问题,即必须保存页面上按钮的状态activity_main_page。在这里,我将有 10 个按钮,它们一开始是不可见的和无名的,在那里activity_add_course将为按钮添加一个名称并使其可见。我推测我将遇到的问题是:重新启动应用程序时所有按钮都将变得不可见。

0 投票
1 回答
577 浏览

android - 在方向更改时保存和恢复 TableLayout

在我的程序中,我有一个带有一个 TableRow 的 TableLayout,我在其中动态添加了更多带有 4 个 TextView 的 TableRows 按钮单击。现在,如果我更改手机的方向,我想保存并恢复此表。

我有以下代码应该这样做:

在我的 onSavedInstanceState 方法中,我正在浏览我的表,我将每个 Textview 保存在 StringArray 中。在 onRestoreInstanceState 我试图重新创建表。

现在我有两个问题。我的第一个问题是,我的程序没有通过 onSavedInstanceState 中的表。它只是将最后一行的 TextViews 添加到我的字符串数组中,而不是所有行的 TextViews。

例如我有两行:

第 1 行:'abc''123''def''456'

第 2 行:'cba''321''fed''654'

现在 ABC 和 CBA 应该在我的第一个字符串数组中,但是有两次 CBA 因为它是最后一行。

我的第二个问题是 onRestoreInstanceState。一旦我到达“查看 rowchild1 = tableRow.getChildAt(0);” 我的程序崩溃了。

有谁知道解决方案?

0 投票
1 回答
18 浏览

android - Android - 下拉通知抽屉时,ImageButton 失去按下状态

ImageButtonnotification抽屉从顶部向下拖动时,我失去了我的按下状态。

我不确定为什么会这样?我目前正在使用onSaveInstanceStateonRestoreInstanceState确保ImageButtons状态得到保存和恢复。

在大多数情况下,它可以完成它的工作,我唯一遇到的问题是notification抽屉被拉下时。有谁知道为什么这会导致我ImageButton失去它的按下状态以及如何解决它?

0 投票
1 回答
42 浏览

android - 通过动态设置片段布局,使用接口将数据从片段发送到片段。片段的保存实例不工作

我正在使用接口将数据从一个片段发送到另一个片段。这绝对没问题。现在我正在尝试使用 onSaveInstanceState() 将值保存在 Fragment 中并在 onCreate() 中检索。但是我在 Bundle of onCreate() 中得到了空值。PS 当我将 Fragment 直接设置到 xml 中的活动布局中时,一切正常。但是当我通过java代码将片段设置到活动中时,onSaveInstanceState 失败了。它不保存最后一个已知值。请帮忙。粘贴下面的代码。您可以尝试一下以了解确切的问题。

片段_A:

=====

活动 :

=====

片段_B:

activity_intercomm.xml: