【问题标题】:Method calls on android screen rotationandroid屏幕旋转上的方法调用
【发布时间】:2016-05-12 02:09:01
【问题描述】:

我有一个 android 项目,我必须在其中放置一个复选框和一个按钮,如果选中该复选框,则启用该按钮,否则未启用。首先,我通过设置复选框的 onClick 属性来实现这一点,但是当复选框被选中并旋转屏幕时,按钮切换到未启用,尽管复选框仍然处于选中状态。所以我尝试使用复选框的 setOnCheckedChangeListener 方法并且它工作(屏幕旋转后按钮仍然启用)。为什么会这样?

【问题讨论】:

  • 请添加您的代码
  • 请记住,当轮换发生时,活动会进入 onPause OnResume
  • 在屏幕旋转时,重新创建活动。如果要保存状态,则需要覆盖 Activity 的 onSaveInstance()。然后在onCreate() 中恢复状态。听说如果视图(TextViewEditText等)有ID,它的状态会自动保存。

标签: android


【解决方案1】:

当您旋转屏幕时,基本上会重新创建活动。一些状态信息可能会自动保留,但您应该更加熟悉整个活动生命周期以了解细微差别。

activity lifecycle

【讨论】:

    【解决方案2】:

    除了 Jerry 的回答之外,为了快速解决这个问题,您可以在活动中为每个复选框简单地创建布尔成员变量。然后,这些应该会通过方向变化持续存在。

    Jerry 是对的,请确保您了解 Android 生命周期。

    【讨论】:

      【解决方案3】:

      在清单文件中的 Activity 中添加这行代码。

      android:configChanges="orientation"
      

      【讨论】:

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