更改屏幕方向时,整数值会丢失吗?

时间:2012-08-22 06:51:53

标签: android screen-orientation

我正在检查在实际设备上调试应用程序的样子。以下代码只是根据重复按下的次数更改按钮的文本。

它完美地增加了,但是当我倾斜设备并且它切换到横向时,按钮将其文本更改为初始状态。我再次按下并再次倾斜,价值再次重置。

后台发生了什么?以及如何阻止它?

b.setOnClickListener( new OnClickListener() {
    int i = 1;

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        // Toast.makeText(MainActivity.this, "Pressed ", Toast.LENGTH_SHORT).show();
        b.setText("press "+ i);
        i++;
    }
});

6 个答案:

答案 0 :(得分:3)

当你倾斜设备时,你的活动被破坏,再次调用oncreate。 您必须保留重新启动时要返回的值。 有几种方法可以做到这一点。 在快捷方式中,您只需在清单文件的Activity中添加一个标志,即android:configchanges =“orientation”。

<activity
            android:name=".Splash"
            android:configChanges="orientation"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

Aur在onPause或onBundleSaveinstance生命周期回调方法中保存您的值。

答案 1 :(得分:2)

是的,因为您的活动将重新启动。您需要将方向更改的数据保存到已保存的即时消息,否则您需要限制活动中的方向更改。

答案 2 :(得分:2)

您需要使用onSaveInstanceState来保存数据,因为方向更改时数据会丢失。谷歌onSaveInstanceState,如果你仍然有问题。

答案 3 :(得分:1)

您需要在AndroidManifest.xml中分配android:screenOrientation="landscape",请查看以下代码,

<application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity" android:label="@string/app_name" android:screenOrientation="landscape" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

答案 4 :(得分:1)

当屏幕方向改变时,活动将被销毁并重新创建。

您可以将其锁定到一个方向。

使用onSaveInstanceState保存您的申请状态,然后在onCreate或onRestoreInstanceState

中恢复

答案 5 :(得分:0)

每次活动更改方向时,您的活动都会重新启动(onCreate被调用),为了避免这种情况,您可以在androidmanifest中设置android:configChanges =“orientation”到活动。

相关问题