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

0 投票
8 回答
22922 浏览

android - 在提交 FragmentTransaction 之前检查状态是否已保存

我有时会看到以下堆栈跟踪,用于在用户不查看活动时(保存状态后)可能发生的提交:

查看 Android 源代码,这完全有道理:

现在,我想知道是否有任何方法(除了将类变量存储在 on(Save/Restore)InstanceState 中)来检查片段是否会以不希望的状态提交,这样我可以存储事务以供以后使用在适当的时间提交。

0 投票
1 回答
1105 浏览

unity3d - Google Play 游戏服务 | ShowSelectSavedGameUI Unity android

我在显示已保存的游戏 ui 时遇到以下异常。这是我的代码:

显示用户界面代码::

NotImplementedException:您必须启用已保存的游戏才能使用它。请参阅 PlayGamesClientConfiguration.Builder.EnableSavedGames。02-06 20:03:38.804: I/Unity(32369): 在 GooglePlayGames.Native.UnsupportedSavedGamesClient.ShowSelectSavedGameUI (System.String uiTitle, UInt32 maxDisplayedSavedGames, Boolean showCreateSaveUI, Boolean showDeleteSaveUI, System.Action`2 回调) [0x00000] :0 02-06 20:03:38.804:I / Unity(32369):在GameManager.ShowSelectGame()[0x00000]中:0

但是,每次我都从登录中获得成功。

0 投票
1 回答
1275 浏览

android - getArguments().getString 在我的 Fragment 中总是返回 null

我有以下问题。我想保存一些TextViews 的值,以便在重新返回到 this 后可以检索和显示它们Fragment(我使用replace()切换Fragments 的方法)。我遵循了这个POST的建议,所以我的代码现在看起来像这样:

问题是返回后Fragment调用了refreshUI方法,但是loadedLatitudeloadedLongitude Strings总是null. 我究竟做错了什么?

0 投票
1 回答
72 浏览

android - Fragment 中的 Fragment 不能保留它们的值

我有一个活动,在那个活动中我有 2 个片段 A 和 B。

片段 A有一个EditText用于输入Email

片段 B包含另外2个片段B1B2,可以使用片段 B 底部的两个按钮进行选择。

B1 和 B2 包含一个EditText用于输入NameNumber

当我输入电子邮件、姓名和号码并在片段 A 和 B 之间切换时,电子邮件值保留子片段 B1 和 B2 中的名称和号码值丢失。

是因为我在 B 中有嵌套片段吗?

如何保留子片段 B1 和 B2 的值?

我是android新手,有人可以参考一个好的工作示例吗?

0 投票
1 回答
36 浏览

android - 从另一个活动返回后应用程序未恢复捆绑包

我有一个使用谷歌地图的应用程序。我将 latLngBounds 保存到变量中,然后捆绑以便稍后检索它。我的问题是我想保存屏幕的当前位置,然后将相机移动到那个 LatLng。但是每次当我单击标记并启动另一个活动并返回时,屏幕都会以单击的标记为中心,但我想摆脱此功能并使屏幕返回到之前的位置。

编辑:问题是我的应用程序没有从包中恢复数据,我不知道为什么。这是我保存和恢复状态的方法,但没有一种方法有效:

问题似乎是从另一个活动返回时捆绑包以某种方式为空

0 投票
0 回答
126 浏览

android - 实例状态能否在应用更新中保持不变?

Android 应用程序的 savedInstanceState 是否可以在应用程序更新期间保持不变?

以以下情况为例:

  1. 我有一个用 onSaveInstanceState 编写的 Parcelable 模型
  2. 应用程序更新,新版本中 Parcelable 模型的结构发生了变化
  3. 应用程序在下次打开时崩溃,因为 Parcelable 的保存状态与新模型不匹配

我应该认为(希望)这永远不会发生,因为它没有任何意义。只是想确定这是完全不可能的(因为我似乎找不到任何明确描述这种情况的文档)。

0 投票
3 回答
165 浏览

android - Android Activity Cycle? Text Remains When Activity is destroyed like Whatsapp?

I am new to Android and recently focusing on the Activity cycle. My understanding is that if we destroy an activity class, all the unsaved data will be cleared.

But whatsapp's chat page seems to be quite interesting as after I quit the chat page and re-enter that particular chat page, I would see the unsaved text remain in the edittext box.

So, how would they do the tricks? Is it related to "savedInstanceState" ?

enter image description here

0 投票
1 回答
67 浏览

android - Android 保存/恢复活动状态的机制

对于我的第一个 Android 应用程序,我(希望)完全按照developer.android.com上的教程进行操作。完成的应用程序有一个 EditText 视图,您可以在其中输入文本和一个 SEND 按钮,该按钮将打开一个新活动 (DisplayMessageActivity),该活动以大字体显示 EditText 中的文本。

我注意到关于 EditText 中文本的持久性的一些不一致的行为。假设我在那里输入了一些文本:

  • 当我点击手机底部的后退按钮并从图标重新启动应用程序时,我会丢失文本。

  • 当我点击手机底部的主页按钮并从图标重新启动应用程序时,我会保留文本。

  • 当我按下 SEND 按钮并通过手机底部的 Back 按钮离开 DisplayMessageActivity 时,我会保留文本。

  • 当我按下 SEND 按钮并通过操作栏中的箭头按钮离开 DisplayMessageActivity 时,我松开了文本。

谁能向我解释为什么行为不同以及在所有四种情况下我必须做些什么来保留文本?

0 投票
1 回答
2302 浏览

android-studio - 持久布尔值 Android Studio

我一直在浏览网络(包括 SO),并找到了很多关于拥有持久数据的信息。我找到了字符串、整数、双打、日历,几乎所有东西。我没有看到具体指南或教程的那些是布尔值。

我创建了一个应用程序,它的开关位于主要活动上。我没有设置按钮、窗口甚至窗格,因为整个应用程序都是从主 Activity 访问的。我想让开关保持不变以及它所保持的影响(即,当应用程序关闭时,它会记住用户是否禁用或启用振动功能)。

我有开关在它启用振动的位置工作,具体取决于开关所在的位置。重新创建应用程序时,我似乎无法让开关保持在关闭位置。

这是我要保存的代码:

当开关从禁用切换到启用时,会发生较短持续时间的振动(100ms)。较长的是实际导致按钮在单击时振动的原因。

我已经让布尔逻辑工作了,但 IO 开关仍将设置为默认值,并且在切换之前无法正常工作。关于开关的问题是,我希望开关在加载时处于正确位置(即,如果布尔值保存为 false,则开关将加载到关闭位置)。我不知道如何让两者沟通。我认为开关必须根据布尔值进行更改,而不是相反。我只是不知道如何使 xml 开关与我在 java 中使用的开关进行通信,反之亦然。

这是开关的xml代码:

我知道android:checked="true"在默认打开位置创建开关的原因。我尝试在值 xml 中创建一个新的布尔值(所以不是代码说android:checked="true",它会说一些类似的东西android:checked="@bool/vibeConvert),但发现我不知道如何通过 java 编辑布尔值.

我尝试了几种不同的方法来使这些数据持久化,但它们都不适合我。如果我能在持久数据方面获得一些帮助,特别是关于布尔值,那就太好了。

编辑:显示我尝试使用 SharedPreferences。

我不太确定如何使用 SharedPreferences,也找不到指定放置它们的位置的任何地方。出于显而易见的原因,它们在此处被注释掉。不知道从这里去哪里。

谢谢!

弥敦道

编辑:

我尝试使用以下代码:

这是我的 XML:

我不确定是否:

  1. 正在保存布尔值。

  2. 可以在 Java 代码中编辑该开关。

我尝试使用以下代码行来实现这个想法:Switch ("+id/switch1") = vibeSave;,但这不起作用。我不知道如何从这里开始。我希望我的 XML 能够根据布尔值从正确的位置开始,但我不确定如何让我的 XML 和我的 java 相互通信。

0 投票
2 回答
2068 浏览

android - 放HashMap> 在已保存实例状态

savedInstanceState在 Android 中添加值时遇到问题。我试图在互联网上找到解决方案,但我似乎找不到解决方案。也许你们中的一些人可能知道问题出在哪里。我需要将 HashMap> 放入savedInstanceState,并检索该 onCreate 方法。有没有人遇到并解决了这个问题?感谢您的时间。