问题标签 [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 - 在 onSaveInstanceState 中保存字体
在痛苦地发现Typeface.createFromAsset 可以创建内存泄漏之后,我试图找到一个完整的解决方法。上述链接中描述的缓存解决方案有助于避免在应用程序运行时重复重新加载字体。但是,如果您的应用程序必须从 onCreate 重新启动(例如,在方向更改后,其他应用程序在其间弹出等),情况如何?有没有办法将字体存储在 onSaveInstanceState 中,以避免每次都必须再次调用 Typeface.createFromAsset 和泄漏内存?
android - Android:Activity onCreate savedInstanceState 始终为空
所以,我知道问题是重复的,但我没有在这些答案中找到解决方案。我有一个 MainActivity 和 GameDetailActivity。GameDetailActivity 的 MainActivity 层次父级。这是清单文件中的声明:
这里 AppTheme2 声明:
在 GameDetailActivity 中返回逻辑:
当我在 GameDetailActivity 中按下主页(返回“<-”)按钮时,我总是在 MainActivity 中获得 saveInstanceState 为空。我不明白为什么保存的数据会在 MainActivity 中丢失。
编辑
这里开始 GameDetailActivity 代码:
有人知道如何解决这个问题吗?
先感谢您
android - 为什么我的 savedInstanceState Bundle 不保留值?
我正在制作一个健身应用程序,允许用户制作健身活动列表。进行新活动时的选项之一是使用 Google 地图选择位置。这将打开一个新片段,并导致当前片段上的所有值被重置。为了防止这种情况发生,我保存了使用 onSaveInstanceState() 设置的所有值:
然后,当用户从 Google 地图返回时,我在 onCreateView() 中恢复这些值:
但是,这似乎不起作用。有谁知道为什么会发生这种情况?
android - Android:RecyclerView GridLayoutManager - 恢复滚动位置无法正常工作
我有 3 个活动:A --> B --> C
在活动 B 中,我使用 RecyclerView 的 GridlayoutManager 进行填充。我想在导航到 Activity C 时保存滚动状态,并在我从 Activity C 返回到 Activity B 时恢复滚动状态。
.
.
.
但是,当我从 Activity B 按下返回按钮并转到 Activity A,然后从 Activity A 导航回 Activity B 时,这会起作用。
java - 屏幕方向后保留卡片视图
我有一个片段,它进行异步调用,分配给一个对象变量(我花了一段时间才弄清楚),然后单击一个按钮,它cardviews
通过适配器加载到屏幕中。
我正在使用的代码是:
问题是,如果我尝试旋转屏幕,然后内容消失并再次出现,必须单击按钮(的id.LOAD
),我添加了一条语句来检查 saveInstance 状态是否为空,该解决方案不起作用现在,当我转动屏幕时cardviews
,我通过适配器加载的内容消失了,并且不可能再次加载它们。
我可以保存状态吗?我读过关于覆盖该onViewStateRestored
方法的信息,但这个想法似乎并不乐观,因为内容需要在点击侦听器内部处理。
任何建议将不胜感激。
根据要求,这是 .
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 吗?如果没有,那么我该如何解决?
android - IlegalStateException when onItemClick after restart
To reproduce, get the SSCCE Android Project on Github and :
Touch the hamburger to display navigation menu
Select Employees
Select an Employee
Touch the back button
Touch the Overview button
Select the application from the list
Touch the hamburger to display navigation menu
Select Employees
Select an Employee => IllegalStateException
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1538) at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1556) at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:696) at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:662) at example.com.replacefragments_onitemclick.fragments.FragmentChange.onFragmentChange(FragmentChange.java:88)
The reason for the exception is clear: With the replace statement, it is trying to replace a fragment that is attached to a now non-existent Activity instance.
Overriding onSaveInstanceState()
as suggested here has no effect.
Numerous questions suggest using commitAllowingStateLoss()
. It does not fix the problem and apparently is kind of a hack anyway.
Also, there are answers that say to keep a reference to the old Activity. This does not seem right.
How can I prevent this exception?
java - 实现 savedInstanceState 后 Android App 停止
编辑:添加onPause()
and后onResume()
,应用程序不再崩溃;但是,该实例仍未保存,并且我丢失了放入EditText
. 我推测我应该使用onPause()
,保存实例,并使用(或者可能使用 this并onStop()
一起使用)来调用它- 我现在正在阅读如何使用这三种方法,我将不胜感激任何指针。onResume()
onSaveInstanceState(), onRestoreInstanceState()
我目前正在编写一个只有四个(也许五个)活动的简单 Android 应用程序。该应用程序的功能是为大学学生提供帮助和建议,他们需要自己添加课程(在activity_main_page
页面上显示为按钮) - 当按下按钮时,它将把学生带到建议页面。
我目前正在处理的是课程添加页面:activity_add_course
. 我正在尝试添加一种方法来保存EditText
活动暂停/停止时(例如,当用户按下后退按钮或主页按钮时)的文本状态(这是用户添加课程名称的地方),并且当用户返回页面时将其召回。
在我尝试将实例状态保存添加到应用程序之前,该应用程序运行良好(使用虚拟意图连接活动 - 我没有添加 SQL 数据库来实际使应用程序工作)。现在我已经添加了实例状态保存和调用,当我单击后退按钮时应用程序停止运行,我不知道为什么?或如何解决?- 此问题已得到解决。谢谢@peresisUser
这是后退按钮的代码
这些是我使用的代码,例如保存和恢复。
edCourse1-4
都是不同的EditTexts
。
据我了解,onSaveInstanceState()
将保存edC1
为文本 fromedCourse1.getText()+""
等,然后onRestoreInstanceState()
将恢复String
内部edC1
toedCourse1
等等。
在这方面遇到麻烦,我不知道如何解决我的下一个问题,即必须保存页面上按钮的状态activity_main_page
。在这里,我将有 10 个按钮,它们一开始是不可见的和无名的,在那里activity_add_course
将为按钮添加一个名称并使其可见。我推测我将遇到的问题是:重新启动应用程序时所有按钮都将变得不可见。
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);” 我的程序崩溃了。
有谁知道解决方案?
android - Android - 下拉通知抽屉时,ImageButton 失去按下状态
ImageButton
当notification
抽屉从顶部向下拖动时,我失去了我的按下状态。
我不确定为什么会这样?我目前正在使用onSaveInstanceState
并onRestoreInstanceState
确保ImageButtons
状态得到保存和恢复。
在大多数情况下,它可以完成它的工作,我唯一遇到的问题是notification
抽屉被拉下时。有谁知道为什么这会导致我ImageButton
失去它的按下状态以及如何解决它?