旋转Android

时间:2018-03-14 22:51:04

标签: 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

虽然我知道错误意味着什么,但我看不出旋转设备时会发生什么原因(在我的物理开发设备和模拟器中都会发生)。它抱怨的代码是(在片段中的onAttach方法中);

TextView totalMatchGoals = (TextView) getView().findViewById(R.id.txtResInfoGoals);

旋转设备会导致视图刷新吗?即便如此,我也想不出为什么会导致问题。

感谢所有帮助。

2 个答案:

答案 0 :(得分:0)

在充气布局后,在onCreateView()内进行检查,或在视图确实存在时进行onViewCreated()

答案 1 :(得分:-1)

如果您尚未配置AndroidManifest.xml,则在检测到方向更改时,Android会销毁并重新创建整个活动。

重新创建活动时,会在填充视图之前调用onAttach,具体如下:https://developer.android.com/reference/android/app/Fragment.html

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

的AndroidManifest.xml

<activity
    android:name="<your-activity>"
    android:configChanges="orientation|screenSize"
    ...

在您的Activity类中,重写此方法以处理方向更改:

  @Override
    public void onConfigurationChanged(Configuration newConfig) {}

更多信息: