问题标签 [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.
android - 保存 RecyclerView 列表状态
我有一个包含类对象列表的 recyclerView。目前,当我关闭我的应用程序时,recyclerView 中的所有列表都会丢失,并且在重新启动应用程序后,recyclerView 什么也不显示(没有列表)。
即使在我的关闭和销毁之后,我应该使用什么以及如何保留列表?
我将此类的对象存储在 arraylist 中以填充我的 recyclerview 适配器。
android - 如何在方向更改时保存 EditText 文本?
虽然这个概念很简单,但当设备的方向发生变化时,我似乎很难保存 TextEdit 的文本值。当我改变方向时,我的 EditText 中的文本被删除。
视图层次结构如下:
我尝试在 xml 布局中设置
freezesText
为true
无济于事EditText
。在片段中,我尝试将文本保存在
onSaveInstanceState()
并恢复onActivityCreated()
,但似乎onSaveInstanceState()
从未被调用过。在活动中,我尝试将文本保存在
onSaveInstanceState()
并恢复onCreate()
,但当时EditText
为空。我尝试
saveEnabled
在 xml 布局中设置为 trueEditText
也不起作用。
我究竟做错了什么?
java - 0xa2ee7500 (RippleDrawable) 上的 endAllActiveAnimators,Android 片段中的句柄为 0xa1c126d0
我在启动 Fragment 时遇到此错误。有时片段显示,有时不显示,应该只显示一个空白屏幕。当时 logcat 显示“endAllActiveAnimators on 0xa2ee7500 (RippleDrawable) with handle 0xa1c126d0”
也请描述 endAllActiveAnimators
代码如下
片段是
下面给出了片段 xml
请帮助解决这个问题,在此先感谢。
编辑
错误的完整日志(由 OP 在评论中发布):
06-29 13:06:55.702 24382-24382/com.cushbuart.cushbuart E/log: onsavedInstanceState 06-29 13:07:01.840 24382-24525/com.cushbuart.cushbuart D/OpenGLRenderer: endAllActiveAnimators on 0x9ecd8b80 (RippleDrawable)句柄 0xa19a4540 06-29 13:07:03.612 24382-24382/com.cushbuart.cushbuart D/EventBus: 没有订阅者注册事件类 com.cushbuart.cushbuart.eventmodel.ArtIdEvent 06-29 13:07:03.612 24382-24382/ com.cushbuart.cushbuart D/EventBus:没有订阅者注册事件类 org.greenrobot.eventbus.NoSubscriberEvent
android - 如何找出 saveInstance 正在保存的数据
得到了android.os.TransactionTooLargeException,据说是因为
“当同时通过 Parcels 传输过多数据时,会发生此异常。底层 Binder 事务缓冲区有一个有限的固定大小,目前为 1Mb,由该进程正在进行的所有事务共享。因此,当有许多事务正在进行时,即使大多数单个事务的大小适中,也可能会引发此异常。”</p>
在它崩溃的时候,日志显示 mainActivity 启动 onSaveInstanceState() 并且它还包含一些片段。
mainActivity 有一个 Drawer 和一个列表片段,当单击列表项时,会打开一个容器片段,该容器片段具有一个 viewPage 并包含三个详细信息片段。
看起来累积的数据已经超过了 Binder 的 1 meg 限制。
在他们的 onSaveInstanceState() 调用中仔细查看了所有片段保存的数据,它们都很小(int、boolean 等),加起来不到几 k,比如说 < 10k。
还查看了所有片段的布局文件,其中使用了 LiniearLayout、TextView、ImageView、WebView 等。并做了一个日志来查看 android View 可能保存的数据。
日志显示所有这些片段的 Views 总共可以节省不到 30k。
所以不知道这个“data parcel size 593484 bytes”是从哪里来的。
或者必须有一些其他数据android系统也在保存(?)。
有没有办法找出或转储“底层 Binder 事务缓冲区”数据以查看它们可能来自什么?有谁知道 android 对 WebView 所说的数据是什么(或如何找到)?
===
扩展视图来做日志,类似的用于片段中使用的其他视图
}
android - “不保持活动”模式:点击主页不会破坏活动(仅限三星 S6 7.0)
我正在“不保持活动”模式下测试应用程序。
接下来是流程:我正在点击 HOME,应用程序移至后台,然后我在主屏幕上按下其图标。在所有设备上,此流程都可以正常工作:活动破坏和 onSaveInstanceState 调用。
但仅在三星 S6 Android 7.0 上它有意外的行为 - 活动没有破坏并且 onSaveInstanceState 没有调用,因此通过点击应用程序图标打开相同的活动并且在 savedInstanceState 包中没有数据。
如何避免这种意外行为?在所有设备上需要相同的行为
android - 我无法让我的片段保存我的 recycleview 滚动位置
我在网上的任何地方都找不到修复程序。我正在尝试保存我的滚动位置,RecycleView
以便当用户单击帖子并返回主页时,他们将继续停留在他们停止的位置。onCreateView
正在接收 int 变量,但是当我将其设置为没有任何反应RecycleView
时。
这是Activity
我的Fragment
这是Fragment
java - Android Studio:对象的 SavedInstanceState 不起作用
我有一个名为“MemoryCard”的自制对象,它实现了 View.OnClickListener和Serializable并扩展到Activity。
我在 onCreate() 方法之外声明MemoryCard card;
为数据字段,我的onSaveInstanceState方法如下所示:
在我的OnCreate展台内
但是我总是遇到我的应用程序停止的异常。我有什么问题吗?或者 MemoryCard 不能有任何扩展或实现?
java - 当用户离开活动然后返回时从保存的实例状态中检索键
我遇到了 SavedInstanceStates 的问题。在我的应用程序的主活动中,列表视图中填充了数据库中的名称。当您单击其中一个姓名时,将打开一个新活动,其中显示从单独的数据库中提取的另一个列表视图,并详细说明有关此人的各种信息。此列表视图上的项目仅在其 characterID(根据创建它们的人的姓名设置)和原始数据库中的人的 id 匹配时才会显示。长话短说,您可以创建一个人 Trevor,然后当您单击 Trevor 时会显示许多特定于 Trevor 的信息。您还可以单击这些信息以打开新活动并编辑该信息/使用该信息进行操作。我通过保存用 setData 点击的人的 Uri 来做到这一点,
当用户单击有关 Trevor 的一条信息并在新活动中打开时,包含 id 的变量将被销毁,就像我在第一个活动中设置的数据一样。因此,当我单击返回时,它会由于 NullPointerException 而崩溃。所以我现在在执行我的数据库查询之前检查来自 getData() 的数据是否为空。但这只会使列表视图为空,因为它在查询数据库时没有可使用的 ID。
所以我尝试使用 onSaveInstanceState 来保存 characterId 变量。但是使用 onRestoreInstanceState 似乎不起作用。导航到第三个活动,然后通过单击返回完成它,似乎没有调用 onRestoreInstanceState。我还尝试检查 onCreate 中的 savedInstanceState 是否为空,查看它是否包含我设置的密钥,然后将其撤回,但 onCreate 中的 savedInstanceState 是否为空,无论我是先导航到它,还是点击后退按钮返回它. 我已经环顾了几个小时试图找出答案。这是工作的错误工具吗?我错过了什么吗?
我尝试检索变量的 onCreate 的一个片段,但是当我第一次导航到它时 SavedInstanceState 为空,当我从它之后的活动中按下时。
illegalstateexception - onSaveInstanceState onBackPressed 后无法执行此操作
应用程序在 Activity 的这种方法中崩溃。没有从活动中调用异步。原因
异常 java.lang.IllegalStateException:onSaveInstanceState 后无法执行此操作
看到所有相关的问题,但没有得到任何解决方案。提前致谢
java - 保存图像按钮的状态
好的,所以我有一个包含许多图像按钮的应用程序,我目前正在工作的是所有onClick
侦听器,并且当用户单击图像时图像会发生变化。onSavedInstance()
我阅读并研究了我可以使用和保存这些图像按钮的状态onRestore()
。这就是我现在所拥有的,我只为一个图像按钮尝试这个,因为如果这不正确,我不想更改所有内容。
我也有让我在每个活动中移动的按钮,问题是当我移动到另一个活动然后移回图像按钮更改不会保存并且按钮图像返回到如果它从未被按下时。
我有一种感觉,我错过了一些非常简单的东西,因为我已经观看并阅读了一些教程,但仍然无法让它工作。如果能帮助我理解,我将不胜感激。
好的问题解决了我只使用共享首选项在我的一个图像按钮上尝试了它,并将其置于暂停和恢复状态。我现在可以按返回按钮转屏并退出应用程序而不会丢失数据。