问题标签 [android-savedstate]
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 - FrameLayout 中的 onSaveInstanceState 导致崩溃
我有一个扩展 FrameLayout 的自定义 ViewGroup。在方向更改时,我需要保留一个 int 值。我正在覆盖onSaveInstanceState()
and
onRestoreInstanceState(Parcelable state)
以保持旧值。我的代码如下
但我要崩溃了。
但是,如果我打电话super.onSaveInstanceState()
给onSaveInstanceState
我如何返回我的捆绑价值?
这里有什么问题?
提前致谢!!
android - 从保存的实例恢复片段时,如何防止editText自动填充文本?
我有一个包含并显示多个片段的活动。
当我重新输入片段时,它会自动填充所有编辑文本中的文本。所有字段的文本也相同。
例子:
打开片段,在两个editText中填入文本:
CustomEditText1: [______]
CustomEditText2: [_acb__]
CustomEditText3: [_qwe__]
单击返回按钮并重新输入片段
CustomEditText1: [_qwe__]
CustomEditText2: [_qwe__]
CustomEditText3: [_qwe__]
这是我在片段中覆盖的方法:
通过调试,我可以看到 editText 通过在覆盖的 OnTextChanged 内设置断点来设置文本。
这是该断点的堆栈跟踪:
(NASEditText 是我的自定义视图)
两个问题/疑问:
- 当片段恢复时,如何防止活动/片段/编辑文本填写字段中的文本?
- 为什么要为所有字段填写相同的文本?
android - 在应用 XML 属性之前恢复视图状态
我有一个自定义视图,假设这是它的代码:
很简单。我的自定义视图从 XML 读取属性并应用它们。这些属性在配置更改时保存和恢复。
但是如果我有两种不同的布局,例如两个不同的方向:
我的问题是,当更改设备方向时,视图状态被保存为可见并启用,但现在 XML 布局状态视图也不应该有。构造函数在 onRestoreInstanceState 之前被调用,并且 XML 属性被保存的状态覆盖。我不希望这样,XML 优先于保存的状态。
我做错了什么?解决这个问题的最佳方法是什么?
android - 嵌套 RouterPagerAdapter 不恢复旋转状态
根控制器,它有一个RouterPagerAdapter
,主机控制器 A 有它自己的RouterPagerAdapter
。
控制器 A1 由控制器 A 托管
轮换后,根控制器、A 和 A1 收到它们的onSaveInstanceState/onSaveViewState
,但 A 和 A1 都没有收到它onRestoreInstanceState/onRestoreViewState
。
为什么会这样?确保所有孩子的状态恢复的正确实施是什么?
android - Android 和 Dagger 2 子模块
如果我将 Dagger 2 与作用域子模块一起使用,它可以更容易地不在活动之间传递 parcelables,但是如果应用程序经历进程死亡并且我们的对象图被破坏,你如何处理从中恢复?
我唯一能想到的就是加倍并使用您的作用域依赖项以及在 Bundle 中放置足够的数据来重新创建图表。这样,如果您发现应该存在的内容为空,这意味着应用程序已被终止,请使用捆绑包中的状态来尝试重建图形。
还有比这更好的方法吗?在我看来,这部分否定了使用 Dagger。
java - 试图保存条件
我有一个 RemoteCar 应用程序,可以调节空调、启动引擎等。在我的 MainActivity 中有一个 FuelBar 和一个 SeekBar(AC)。我想保存这些实例以供下次运行。例如,当我将空调设置为 20° 并关闭应用程序时,我希望空调打开 20°,就像我离开它的方式一样。但不知何故,我把编码搞砸了,以至于它甚至不再启动,你能解释一下我错过了什么吗?
在 C++ 中,我可以轻松地打开一个文件并立即关闭它,但是“close()”方法不太有效。我也很欣赏与此主题相关的任何信息,我可以在其中阅读。
保存方法“saveInfo”并在 onStop 中我希望它保存当前状态。
日志猫:
android - 销毁并重新创建后未保存启用的 TextInputLayout
简单的布局:
textInputLayout
如果活动是第一次初始化,我将禁用:
我已经检查了“不要保留活动”选项。
所以最初当活动启动时,TextInputLayout
被禁用。当我按 home 并返回时,它再次重新启用。
所以我的问题是:
- 这是预期的行为吗?
- 重新创建时如何保持
TextInputLayout
禁用状态?
编辑:
这似乎也发生在EditText
。
android - Android 视图 - 在 Activity 中自动保存和恢复的内容
我是 Android 的初学者。
在 Android 中,一些通用元素可以在 / 中自动保存/onSaveInstanceState
恢复onRestoreInstanceState
。
例如,一个EditText
保存/恢复Text
属性,一个RatingBar
保存/恢复Rating
属性...
我从一些测试中看到,但我在文档中找不到任何关于此的内容。
在没有我干预的情况下,我如何知道隐式保存/恢复了什么?
例如,我在哪里可以找到EditText.Text
自动保存/恢复的?
我特别不想测试所有属性。
从 JRG 答案编辑:
https://developer.android.com/guide/components/activities/activity-lifecycle.html
保存您的活动状态当您的活动开始停止时,系统调用 onSaveInstanceState() 方法<...> 此方法的默认实现保存有关活动视图层次结构状态的临时信息,例如 EditText 小部件中的文本或 ListView 小部件的滚动位置。
我怎么知道保存/恢复的默认实现是什么?
重读 JRG 答案后的第二次编辑:
默认情况下,系统使用 Bundle 实例状态来保存关于你的活动布局中的每个 View 对象的信息(例如输入到一个 EditText 小部件中的文本值)。
默认实现保存/恢复元素视图的所有状态。
android - savedInstanceState 不为空的情况
如果我没有明确地调用onSaveInstanceState()
,哪些是可能性,什么时候savedInstanceState
不为空onCreate
?
我看到一个选项,当系统在崩溃后重新创建我的应用程序时 - 然后savedInstanceState
不为空。
还有哪些其他选择?