【问题标题】:android: data gets lost when phone changed to landscape mode of tic tac toe gameandroid:当手机更改为井字游戏的横向模式时数据丢失
【发布时间】:2014-04-02 15:05:18
【问题描述】:

android:当手机切换到TIC-TAC-TOE游戏的横向模式时数据丢失

我创建了一个 android 应用程序,它工作得非常好,但是当我将手机的位置更改为横向模式时,所有数据都会重置,即游戏按钮上的所有文本都会被空白值替换。

由于我是 android 编程新手,我无法解决这个问题, 请帮忙。谢谢。

我没有发布 XML 代码和 java 代码,因为它非常大, 如果您想查看 XML 代码或 java 代码,请发表评论。

【问题讨论】:

  • 你需要查看 savedInstanceState
  • 谢谢你我会检查并通知你

标签: android android-layout


【解决方案1】:

您需要覆盖onSaveInstanceState 方法。调用该方法时,将要保留的数据保存到bundle 对象。然后在onCreate 中,您应该检查bundle != null) 是否为真(这意味着您在onSaveInstanceState 方法中保存了内容,请根据包中的值更新您的变量。

在 Android documentation 中,您应该避免使用 android:configChanges 属性:

注意:应避免使用此属性,仅将其用作最后的手段。请阅读Handling Runtime Changes,了解更多关于如何正确处理因配置更改而重新启动的信息。

【讨论】:

  • 我是 android 编程新手,所以如果你能详细说明你的答案,那将会很有帮助
  • 请参阅此 Stack Overflow 答案,了解如何正确使用 onSaveInstanceState 的示例:stackoverflow.com/a/6525808/2448305
  • thnx 我会检查它的实现,如果它有效,我会通知你
  • 如何保存 'int's 或 'char's 例如,我已将我的数据保存到一个变量 'a' 中,这是一个它,因此如何使用您的 putInt 想法编写代码来保存它,请告诉完整的代码保存那个变量'a'
  • 如果这对你有用,记得接受答案:)
【解决方案2】:

关于你可能已经处理了savedInstanceState,那么包括

android:configChanges="orientation"

在 android 清单中的活动中。

【讨论】:

    【解决方案3】:

    可能是活动重新加载的情况

    有一种方法可以尝试:只需像我在下面那样添加“screenSize”属性:

    <activity
        android:name=".YourActivityName"
        android:configChanges="orientation|screenSize">
    </activity>
    

    更多细节:关于它 http://developer.android.com/guide/topics/manifest/activity-element.html

    http://developer.android.com/guide/topics/resources/runtime-changes.html

    【讨论】:

    • 好的,我以前也遇到过同样的问题,据我记得这解决了我。 @Anuj
    • 好的,等一下,我必须看看我的代码我做了什么,目前我不在。 2小时后回来。
    猜你喜欢
    • 2021-11-09
    • 2010-12-13
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 2015-06-12
    相关资源
    最近更新 更多