问题标签 [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 投票
1 回答
290 浏览

android - 恢复片段在旋转时的先前状态和在后台堆栈中的位置

我有一个带有单个活动的应用程序,向用户显示了一个片段。单击按钮时,活动显示另一个片段,但将前一个片段保留在backstack. 我现在有两个问题:

  • 在旋转时(特别是在第二个片段中),输入的数据EditTexts被清除
  • 我希望backstack也可以使用先前在第二个片段中输入的文本来恢复。

问题是,当我将数据保存到 bundle usingOnSaveInstanceState(...)时,我成功地再次从中获取它,OnViewCreated(...)但是当我使用 时editText.setText(str),没有显示文本。

目前,我认为这是因为片段随后被父 Activity 销毁并重新创建。

我该怎么做才能使其正常工作?

谢谢。

0 投票
0 回答
64 浏览

java - 按下返回键后恢复上次打开的 pdf 页面

按下后退键后,我实现了此代码以恢复我在 PDF 文档中最后打开的页面。不幸的是,它仍然加载第一页。

任何想法?

0 投票
1 回答
98 浏览

android - 列表视图方向

在方向更改后,我无法恢复对 ListView 所做的更改(删除的项目等)。该项目的目标是无论哪个方向发生变化,都保持项目相同。此外,虽然不是必需的,但我也试图弄清楚如何让下面的前四个 TextView(根据单击的项目而变化)在方向更改后保持不变(注意:描述 TextView 应该只可用当方向设置为横向时)。不过,这几乎没有那么重要。我能做些什么来完成这项工作?

主要活动:

0 投票
1 回答
46 浏览

android - ListView 在屏幕旋转后隐藏

我对如何组织 ListView 的保存恢复过程活动状态感到困惑。我为一个可以正常工作的 TextView 做到了这一点。我找不到一个示例来了解 ListView 的行为方式。

我试图保存 ArrayList,保存适配器状态然后恢复但没有任何效果。休息的东西正常工作。

公共类 MainActivity 扩展 AppCompatActivity {

需要解释 ListView 在保存-恢复过程中的行为方式或显示它的示例。

0 投票
1 回答
561 浏览

java - onSaveInstanceState 和 onRestoreInstanceState 被调用,但轮换数据正在重置

我在我的代码中添加了一个 onRestoreInstanceState 和 onSaveInstanceState 来保存一个要保存的变量,但是该变量在旋转后没有得到保留

我试着用谷歌搜索,我看到 Logcat 和 android 确实调用了这两个函数这里是 Logcat 的重要部分

I/SimpleActivity: PlayTheGame #9469915 onPause()

I/SimpleActivity: PlayTheGame #9469915 onSaveInstanceState()

I/SimpleActivity:PlayTheGame #9469915 onStop()

I/SimpleActivity: PlayTheGame #9469915 onDestroy()

I/SimpleActivity: PlayTheGame #245612069 onStart()

I/SimpleActivity:PlayTheGame #245612069

onRestoreInstanceState(bundle=Bundle[{points=-4, android:viewHierarchyState=Bundle[{android:views={/一些奇怪的数字/} I/SimpleActivity: PlayTheGame #245612069 onResume()

所以看起来我所做的功能被调用但没有被实现

游戏就像程序从文件中读取两件事:单词及其含义,然后显示单词和 4 个选项,如果您选择正确的一项,您的分数会增加,否则会减少。这个分数保存在变量 sc 中。我希望在屏幕旋转时保留这个变量。但这似乎没有发生

我也试过:

我尝试删除 onRestoreInstanceState 并更改了代码

但这会产生错误
原因:java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.Bundle.getInt(java.lang.String, int)' on an null object reference

然后我将 onCreate 中的代码更新为此

这没有返回任何错误,但旋转后 sc 仍然再次设置为零

0 投票
1 回答
135 浏览

android - 自定义图像视图在棉花糖上失去状态

我在我的 Android 项目中使用PhotoView库。该项目包含SaveStatePhotoView,用于在配置更改(旋转,...)时保持图像视图的状态(缩放级别,位置)。

该视图在 Android 7.1.1 和 Android 9 上按需要工作。
Android 6.0.1上,状态丢失:当设备旋转时,图像视图重置为其初始状态。

我准备了一个简单的项目来演示这个问题。请注意,我故意使用PhotoView 1.3.1,因为我目前无法包含传递androidx依赖项。

0 投票
1 回答
43 浏览

android - 从其他应用程序返回时,我不想在图像视图按钮上丢失照片

用户可以在 imageView 按钮上显示他们的照片。代码如下。

问题是,由于 imageView 上的照片是在onActivityResult函数中获取的,所以 savedInstanceState返回null 。

因此,如果用户单击btnRegistration并再次返回此应用程序,他们会丢失 imageView 上的照片。你能帮忙吗,如何编辑这些代码来解决这个问题

0 投票
1 回答
52 浏览

android - 如何在旋转时保持图像视图的状态?

我有点卡在 onSaveInstanceState 和 onRestoreInstanceState 中,每次我运行模拟器时,在从图库中获取图像并出现在屏幕上之后。当我旋转它时,图片消失了。

我错了哪一部分?
它在“savedInstanceStae.getParcelable .....”上吗?
我不知道如何保存 imageView 状态
再次感谢您的帮助

0 投票
1 回答
34 浏览

java - 使用 for 循环存储 TextView 的文本

我正在尝试将文本存储在许多 TextViews 中以在新的 Activity 中恢复,我想知道如何使用 for 循环而不是一个一个地执行此操作。

谢谢你帮助我。

0 投票
1 回答
24 浏览

android - 如何区分 OnRestoreInstanceState 的路径?

我在处理OnSaveInstanceState/OnRestoreInstanceState对时有些问题。据说是为了暂时保存状态,最好的例子是手机旋转时。这部分对我很有用。

然而OnSaveInstanceState,当应用程序简单地退出时也会调用。几个小时后,我启动了应用程序(从我的角度来看,这是一个新的运行),令我惊讶的是 Android 调用OnRestoreInstanceState并能够挖掘出状态的“旧”值。

这破坏了我的逻辑,因为我当前的代码假设这对仅在应用程序持续运行时(从用户的角度)被调用,所以在第二种情况下,我的应用程序的一半表现得像刚刚启动(正确),而另一半表现得像它是在处理一些数据的过程中(因为它从保留状态中获取了这些值;这不是故意的)。

当然我可以破解它并完全放弃这对并在应用程序实例中使用全局值,但我想知道如何在不使用大枪的情况下正确/温和地做到这一点?

更新:发生的重要事件:

  • 我的应用程序的第一次运行
  • 屏幕是否旋转
  • 我的应用程序通过 OnPause 或其他什么,关键是它通过OnSaveInstanceState
  • 一段时间过去了
  • 我再次运行该应用程序,在日志中我看到调用了应用程序构造函数(据我所知,一切都是全新创建的)
  • 在新的应用程序实例活动中调用 OnCreate/OnResume/etc
  • 其中OnRestoreInstanceState也被调用,并且它的 bundle 实例不为空——这意味着临时状态实例跨越了应用程序(不仅仅是活动)的生命周期(这让我担心)

姜饼 2.3。

目前我最终使用了存储在应用程序中的全局变量,因为它在每次启动时都会重新创建,但在屏幕旋转时会保留它的行为,就像我预期的那样。