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

时间:2014-06-07 16:28:42

标签: android screen

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

覆盖onSaveInstanceState(Bundle outState)方法。将您的数据放入outState捆绑包中,然后在onCreate(Bundle savedInstanceState)中将其从savedInstanceState中提取出来。

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

答案 2 :(得分:0)

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

  1. 选择活动(我假设它是您的MainActivity)
  2. 找到标有'屏幕方向'的字段
  3. 将其更改为“纵向”(以防止屏幕在手机水平倾斜时更改屏幕)
  4. 您也可以在AndroidManifest文件的xml中执行此操作,如下所示:

        <activity
            ...
            android:name="yourApp.MainActivity"
            android:screenOrientation="portrait"
            ...
        </activity>
    

    修改 - 请记住

      

    “这是我在android上的第一个应用程序”

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