Android - 在横向和纵向模式之间切换使 Intent 失去值(value)

标签 android android-orientation landscape-portrait

我正在使用 Intents 在我的 Android 应用中的 Activity 之间切换。我将数据放入 Intent 以供下一个 Activity 使用。当我在横向和纵向模式之间切换手机时,从 Intent 传递的值丢失并且我得到 NullPointerException。

谁能告诉我可能出了什么问题。

有很多代码可以完整地发布它。但是如果有人需要查看代码的特定部分,我可以在这里发布。

编辑
我解决了状态没有被保存的问题。但我面临的另一个问题是屏幕上的按钮在方向改变后都不起作用。按下按钮时,我在 LogCat 中收到此警告

02-25 23:07:49.190: WARN/WindowManager(58): No window to dispatch pointer action 0

请帮忙。

最佳答案

当您切换方向时,将重新创建 Activity 并调用 onCreate,因此您必须使用 bundle 保存当前状态并在方向更改后恢复。如果您只有一个带有 TextView 的应用程序并且您输入文本并更改方向,您可以看到这一点。如果您为 onCreate bundle 您的状态,则可以遏制这种情况。这可能也是为什么在方向改变后你有一个 NullPointer 的原因。这很烦人,但我们必须忍受。

This 一系列定向教程的链接,尤其是 this first one 应该可以帮助您准确了解正在发生的事情以及如何成功地保持当前状态。

更新:还有一篇关于 SO Activity restart on rotation Android 的帖子处理几乎相同的事情。

编辑后续问题:

您是否在方向更改后重新附加了点击处理程序?

关于Android - 在横向和纵向模式之间切换使 Intent 失去值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/584779/

相关文章:

android - 如何检查Android中是否存在表?

android - Parse Push 通知的 channel 名称是否有限制?

java - 在我的应用程序中发送图像消息时遇到困难并遇到错误。短信工作正常

android - 在方向更改时以编程方式调整 EditText 的大小

android - 在方向改变时重新启动应用程序(Oncreate)

android - 如何在 camera2 Android api 中创建一个 BottomBar 作为 StickyBottomCaptureLayout?

android - Android中的 'debug.keystore'和 'release.keystore'有什么区别?

android - PagerSlidingTabStrip 横向模式填充修复

java - 横向模式在 Android Studio 中不起作用

css - 如何锁定电子书的方向