0

我正在开发安卓应用程序。我的应用程序应该可以在纵向和横向模式下工作。我通过将所有布局文件保存在 layout-lan 文件夹中来调整所有布局。但是现在我的问题在于功能,即当应用程序更改为横向模式时,我的参数值正在发生变化,因此我遇到了崩溃。即我保留了一个计数器值,但是当转向端口局域网时它显示错误的计数值。因此,功能也在发生变化。请在这方面帮助我。

4

3 回答 3

1

每次旋转设备时,都会再次调用 onCreate 方法。您可以通过覆盖 onSavedInstanceState 来保存这些值,然后在 onRestoreInstanceState 或 onCreate 方法中将它们取回。例如:

保存值:

 public void onSaveInstanceState(Bundle outState) {
        outState.putBoolean("booleanValue", true);
}

恢复值(您也可以在 onCreate 中调用它):

 protected void onRestoreInstanceState(Bundle savedInstanceState) {
        if (savedInstanceState != null && savedInstanceState.containsKey("booleanValue")) {
            boolean myBoolean = savedInstanceState.getBoolean("booleanValue");
        }
        super.onRestoreInstanceState(savedInstanceState);
    }
于 2013-02-25T16:11:38.720 回答
0

每次方向更改时,您的活动都会重新启动。

您必须将您的值存储onSaveInstanceStateonRestoreInstanceState. 您将在此处找到详细信息:http: //developer.android.com/guide/topics/resources/runtime-changes.html

于 2013-02-25T15:56:33.947 回答
0

这些值会发生变化,因为活动在轮换期间被破坏和重建,

请查看开发人员指南,了解如何保存您的活动状态。

http://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState

于 2013-02-25T16:07:22.457 回答