当Android中的应用程序从纵向模式转换为横向模式时,值会发生变化

时间:2013-02-25 15:51:53

标签: android

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

3 个答案:

答案 0 :(得分:1)

每次旋转devide时,都会再次调用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);
    }

答案 1 :(得分:0)

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

您必须将您的值存储在onSaveInstanceState中,并在onRestoreInstanceState中恢复它们。您可以在此处找到详细信息:http://developer.android.com/guide/topics/resources/runtime-changes.html

答案 2 :(得分:0)

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

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

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