问题标签 [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.

0 投票
2 回答
367 浏览

java - 如何在 Android 的 Bundle 中存储嵌套的 Arraylist

我的 Android App 源代码中有这个对象:

我想将它存储在一个Bundle中并OnSaveInstanceState()在我的活动中使用它。然后我也想从包中检索它。

我应该使用json吗?还有其他方法吗?

0 投票
1 回答
75 浏览

android - 旋转设备数据后未加载存储在 onSaveInstanceState 回调中

通过网络调用加载数据,当设备旋转时,数据存储在 onSaveInstanceState 回调中,适配器被通知更改,但旋转后活动变为空白。下面给出的代码片段:

另请注意 getParcelableArrayList("list"); 之后的列表大小为 20;叫做。令人难以置信的是,当适配器在 if 语句中再次初始化时,数据会在旋转时显示

0 投票
1 回答
455 浏览

android - 保留 Fragments 的状态?

我正在尝试实现多个片段。当我单击底部导航按钮时,每个片段都在一个更改或替换的活动中查看。能够将数据从 frag1 传递到 frag2,但是如果我单击 frag2 或任何其他片段按钮导航栏,即此处的流栏,它将被重置并且数据丢失。

这是我自己尝试过的:我在第二个片段中实现了 onSaveInstanceState,但是没有用。不知何故,片段正在新创建。

还尝试了这里提到的解决方案

这里只是一个想法是布局 在此处输入图像描述

主要活动

RadioFragment(我从中发送数据的片段)

StreamFragment(接收到数据但未保存在视图中的片段)

0 投票
1 回答
378 浏览

android - 在旋转更改时从 PagerAdapter 保存 edittext 值

我的布局在 PagerAdapter 中被夸大了。它们都有许多编辑文本字段。来自编辑文本字段的值在一个对象中传递,然后在片段中使用。但是,当设备旋转时,所有值都会丢失,这是正常的。如何保存和检索我在适配器中设置的值?

}

0 投票
3 回答
3001 浏览

android - 旋转时在 viewpager 中恢复片段及其状态

处理需要从viewpager动态添加和删除列表片段的应用程序,当点击列表中的一个项目时,新片段添加到viewpager,并且当需要删除向后滑动片段时,这很好用,但是当我旋转屏幕时,我得到双倍寻呼机中的片段实例,再次旋转它,它会使实例翻两番。

同时我需要保持片段的状态(列表位置、加载的项目数等),这意味着覆盖片段中的 onsaveinstancestate 并将相关数据保存在包中以在重新创建时恢复。我设法通过清除适配器并调用 notifydatasetchanged 解决了双实例的问题,但随后我丢失了片段中的保存状态,因为由于明显的原因没有调用 onsaveinstance,如果我不清除适配器,它只会使实例加倍。进入和离开文件夹时,我在 Dropbox 应用中看到了相同的行为。

这是我正在使用的自定义寻呼机适配器实现

这是适配器的实现

和一个持有人 pojo,我用它来保存活动中的 onsaveinstancestate 并在轮换时恢复

活动中的onsaveinstance方法

要求是适配器中的第一项始终是集合片段,并且按需添加和删除文件夹片段(点击或向后滑动)

是否有解决方案(以不同的方式实现寻呼机适配器,在适配器中使用自定义视图......)?有人知道如何在 Dropbox 应用中完成这项工作吗?

0 投票
1 回答
153 浏览

android - 在 ViewPager 中登录然后登录 - 在 onSaveInstanceState 之后无法执行此操作

因此,在 onSaveInstanceState 问题之后,我遇到了臭名昭著的无法执行此操作,并且很难弄清楚如何解决它。

onNavigationItemSelected目前我可以通过菜单注销我的应用程序来导致它。

虽然当我重新登录应用程序时

然后尝试单击一个回收站视图项

我收到 onSaveInstanceState 错误

我尝试使用 .commitAllowingStateLoss() 虽然这给了我一个活动已被破坏的错误

我真的不知道在注销和完成 MainActivity 到然后重新登录并导致 ViewPager 中断之间出了什么问题。

当应用程序新鲜时,它会直接进入登录屏幕,然后从 MainActivity:75 登录它在登录时按预期工作。我是否需要以某种方式重置视图寻呼机?

0 投票
2 回答
314 浏览

java - 保存片段状态给出错误:int java.util.ArrayList.size()' on a null object reference

我正在尝试保存两个片段的状态。我希望它们在我更改 android 设备的语言时重新显示(当我离开活动并返回时)。这两个片段被声明为活动的属性,并且都扩展了android.support.v4.app.Fragment类。这就是我将它们保存在显示它们的活动中的方法:

这就是它们的检索方式(请记住,这是在 onCreate() 方法中调用的方法,就在 setContentView() 方法之后):

这是我在尝试加载活动时收到的错误:

你们能帮我理解发生了什么吗,我该如何解决这个问题(意思是,我如何从它的活动中保存片段的实例)。谢谢

编辑 对于那些要求我显示和隐藏以显示 settingsFragment 的人,这是我使用的方法:

我对需要显示的任何其他 Fragment 执行相同的操作。

0 投票
1 回答
833 浏览

android - Android如何使用onSaveInstanceState保存领域结果以进行屏幕旋转

我的问题是:当我打开对话片段时,我将活动的领域和领域结果发送到对话片段。我总是将不同的领域结果发送到对话片段,具体取决于我在活动中单击的内容。这是对话框片段中的代码,当我单击打开对话框片段时,我从活动中接收领域和领域结果:

收到它们后,我用它们在对话框片段中显示一些数据。

问题是当我更改应用程序方向时,应用程序会因为我不能再使用领域结果而崩溃。我的问题是,如何使用 onSaveInstanceStat 保存整个领域结果,以及当应用程序方向改变时,再次使用该领域结果。

请注意,在领域结果中不仅有一项,还有更多项。

编辑:我从领域保存日期

当我加载应用程序时,我会像这样加载应用程序:

当我旋转屏幕并在这行代码上调用 setTitleNoteTextToDialogNote() 方法时(当我尝试从领域获取数据时),应用程序会崩溃。

这是错误:

0 投票
1 回答
148 浏览

android - 如何从 onPause() 调用 Android IcePick saveInstanceState?

IcePick用来保存我的实例状态。

如何将实例状态保存在onPause(),而不是onSaveInstanceState()

谢谢你。

0 投票
0 回答
303 浏览

android - 在显示已添加到片段管理器的片段时,在 onSaveInstanceState 之后无法执行此操作

我知道有很多与此相关的问题,我已经阅读了很多。这就是为什么我有这样的代码:

这里需要注意的重要一点是onWebApplicationReady,将由加载在WebViewWrapperFragment extends WebViewFragment主机上的 Web 应用程序调用的回调。

鉴于我的shouldShowWrapperWebView(),我不明白为什么我仍然会收到这个异常,这会使某些用户的应用程序崩溃: