Android 旋转机器人

Android 旋转机器人,android,android-layout,Android,Android Layout,在做了一些基本的交互之后,我在旋转我的Android应用程序时遇到了一个问题,我一直得到一个空错误 java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference 虽然我知道错误的含义,但我看不出旋转设备时会发生错误的任何原因(在我的物理开发设备和模拟器上都会发生)

在做了一些基本的交互之后,我在旋转我的Android应用程序时遇到了一个问题,我一直得到一个空错误

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
虽然我知道错误的含义,但我看不出旋转设备时会发生错误的任何原因(在我的物理开发设备和模拟器上都会发生)。它抱怨的代码是(在片段中的我的onAttach方法中)

旋转设备是否会导致视图刷新?即使这样,我也不明白为什么会出现问题


非常感谢您的帮助。

在弹出布局后在
onCreateView()
内进行检查,或者在视图实际存在时在
onViewCreated()
内进行检查。

如果您尚未将AndroidManifest.xml配置为其他方式,则当检测到方向更改时,Android将销毁并重新创建您的整个活动

重新创建“活动”时,在填充视图之前调用onAttach,如下所示:

如果要处理活动代码中的方向更改,请添加以下内容:

AndroidManifest.xml

<activity
    android:name="<your-activity>"
    android:configChanges="orientation|screenSize"
    ...
更多信息:


谢谢。当调用findViewById时,如果我不旋转视图,它工作得很好,我正在努力,这就是为什么它在onAttach中工作,但当我旋转它时,它不工作。不要努力,再多研究一点,然后想:你正在尝试获取视图。旋转设备时,视图和活动将被销毁,因此将创建活动和片段的新实例。千万不要试图在
onAttach()
中获取视图,因为该方法仅用于将片段绑定到宿主活动(如果后者实现了片段接口)。用我提到的一种方法来代替。
<activity
    android:name="<your-activity>"
    android:configChanges="orientation|screenSize"
    ...
  @Override
    public void onConfigurationChanged(Configuration newConfig) {}