关于android:我的应用程序在从水平切换到垂直时重置我的整数

My app resets my integers when switching from horizontal to vertical

本问题已经有最佳答案,请猛点这里访问。

所以这是我在Android上的第一个应用程序,它运行良好。 但是,当我将屏幕倾斜到水平视图时,我的整数会重置为零。 如果我水平启动然后将其切换到垂直,它也会将整数重置为零。 如何让它不重置并切换?


覆盖onSaveInstanceState(Bundle outState)方法。将数据放在outState包中,然后在onCreate(Bundle savedInstanceState)中从savedInstanceState中提取数据。

如果您的数据比简单的整数更复杂,并且未实现Parcelable接口,请使用Fragment


每次倾斜设备时,您的应用都会重新运行一项活动。您必须在旋转之前将数据保存在共享首选项文件中,因为旋转将终止活动,以便它可以使用新方向再次运行。

请参阅此链接以了解如何存储数据:http://developer.android.com/reference/android/app/Activity.html#SavingPersistentState


如果您不想保存数据,可以快速"修复"以进入AndroidManifest.xml文件并执行以下操作:

  • 选择活动(我假设它是你的MainActivity)
  • 找到标有"屏幕方向"的字段
  • 将其更改为"纵向"(以防止手机在水平倾斜时屏幕发生变化)
  • 您也可以在AndroidManifest文件的xml中执行此操作,如下所示:

    1
    2
    3
    4
    5
    6
        <activity
            ...
            android:name="yourApp.MainActivity"
            android:screenOrientation="portrait"
            ...
        </activity>

    编辑 - 记住这一点

    "this is my first app on android"

    如果你只是测试一下,锁定方向是一种完全合理的方法来阻止这种行为,但它绝不是任何"真实"项目中可行的解决方案。