【问题标题】:App shows main screen after screen rotation屏幕旋转后应用显示主屏幕
【发布时间】:2013-08-30 21:31:01
【问题描述】:

几天以来,我一直在开发一个安卓应用程序。 我的 MainActivity 中有两个布局,第一个显示 SearchBox,第二个显示结果。 当应用程序显示结果并更改应用程序方向时,应用程序将返回第一个屏幕。 我的英语可能不太清楚,但请看这些简单的步骤:

 Open App -> 1st screen(MainActivity) -> 2nd Screen(MainActivity) -> Now If I rotate the screen It goes back to 1st screen.

我在互联网上搜索过它,但我无法在上面找到任何东西。任何帮助都可以解决这个问题。

【问题讨论】:

  • 查看link
  • 在您旋转屏幕的位置发布您的第二个屏幕代码
  • 在您的 MainActivity 的 Manifest 中添加 android:configChanges="keyboardHidden|orientation"
  • @CRUSADER :我已经这样做了,但什么也没发生! :)

标签: android android-orientation


【解决方案1】:

您应该使用 onSaveInstanceState 来保存您的状态,然后在 onCreate 中重新创建它。

阅读以下答案

Restore values on screen rotation

【讨论】:

    【解决方案2】:

    在屏幕方向更改活动中重新启动,因此如果您没有保存它的状态,那么它可能会由于空指针异常等错误而破坏,有时 android 不会显示任何用于保存活动状态的 forceclose 日志 看看这个:Configuration Changes

    【讨论】:

      【解决方案3】:

      当您更改设备的方向时,应用程序将被破坏然后重新启动。为了让您的应用程序记住用户的位置以及其他内容,您需要在 onCreate 中实现代码以读取保存的状态,并且您还需要在应用程序关闭之前保存状态,这可以在许多地方完成哪里取决于您的需要,但可能是 onPause()、onDestroy 或

      @Override
      protected void onSaveInstanceState( Bundle outState )
      {
                  // save your sate here
          super.onSaveInstanceState( outState );
      }
      
      protected void onCreate( Bundle savedInstanceState )
      {
          super.onCreate( savedInstanceState );
      
          setContentView( R.layout.layout_main );
      
          // if there is a saved state restore it
          if( savedInstanceState != null )
          {
          }
          else
          {
      
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-13
        相关资源
        最近更新 更多