Android 旋转机器人
在做了一些基本的交互之后,我在旋转我的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 虽然我知道错误的含义,但我看不出旋转设备时会发生错误的任何原因(在我的物理开发设备和模拟器上都会发生)
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"
...
更多信息:
onAttach()
中获取视图,因为该方法仅用于将片段绑定到宿主活动(如果后者实现了片段接口)。用我提到的一种方法来代替。
<activity
android:name="<your-activity>"
android:configChanges="orientation|screenSize"
...
@Override
public void onConfigurationChanged(Configuration newConfig) {}